###############################################################################
# Copyright (c) 2008, 2015 Willink Transformations and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
# 
# Contributors:
#     E.D.Willink - initial API and implementation
###############################################################################

# 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.
# ==============================================================================

pluginName=QVT Declarative Examples (Incubation)
providerName=Eclipse QVTd

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

QVT_category=QVT (Query/View/Transformation Language) Projects

EmptyQVTc_name=Empty QVTc Project
EmptyQVTc_description=Create an Empty QVT Core project

QVTc_UML2RDBMS_name=QVTc UML2RDBMS Project
QVTc_UML2RDBMS_description=Create a project containing a QVT core implementation of the classic (Simple) UML to Relational Database transformation.

QVTr_HSTM2FSTM_name=QVTr HSTM2FSTM Project
QVTr_HSTM2FSTM_description=Create a project containing a QVT Relation implementation of the hierarchical to flat state machine transformation.

UMLX_HSTM2FSTM_name=UMLX HSTM2FSTM Project
UMLX_HSTM2FSTM_description=Create a project containing a UMLX implementation of the hierarchical to flat state machine transformation.

EmptyQVTr_name=Empty QVTr Project
EmptyQVTr_description=Create an Empty QVT Relation project

ModelMorf_name=ModelMorf distribution Examples
ModelMorf_description=Create a project containing Examples from the ModelMorf distribution.

RelToCore_name=Relations To Core Example
RelToCore_description=Create a project containing QVT Relation source code for the Relations To Core trasformation corresponding to the QVT specification. This transformation does not work yet.
