# /**
#  * <copyright>
#  *
#  * Copyright (c) 2007, 2008 Borland Software Corporation.
#  * All rights reserved.   
#  *
#  * Contributors:
#  *   Borland - Initial API and implementation
#  *
#  * </copyright>
#  */

# NLS_MESSAGEFORMAT_VAR

# ==============================================================================
# Do not change the properties between this line and the last line containing:
# %%% END OF TRANSLATED PROPERTIES %%%
# Instead, either redefine an existing property, or create a new property,
# append it to the end of the file, and change the code to use the new name.
# ==============================================================================

# about.properties
# contains externalized strings for about.ini
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# fill-ins are supplied by about.mappings
# This file should be translated.

featureName=Operational QVT Documentation

featureText=Operational QVT Documentation\n\
Version: {featureVersion}\n\
Build id: {0}\n\
\n\
(c) Copyright Borland Software Corporation. 2007, 2008.  All rights reserved.\n\
\n\
QVT Operational Mapping Language (OML) is used for model-to-model transformation.\n\
Visit http://www.eclipse.org/m2m

# ==============================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# The above properties have been shipped for translation.
# ==============================================================================

