###############################################################################
# Copyright (c) 2008-2009 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
# 
# $Id: plugin.properties,v 1.6 2010/07/10 09:39:41 ewillink Exp $
###############################################################################

# 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
providerName=Eclipse Modeling Project

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

QVT_category=QVT (Queries, Views, Transformations Language) Projects

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

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 the Relations To Core Example
