###############################################################################
# Copyright (c) 2008, 2015 Eclipse Modeling Project and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.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 Modeling Project

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