# Copyright (c) 2005, 2018 IBM Corporation, Embarcadero Technologies, 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: 
#   IBM - initial API and implementation
#   Kenn Hussey (Embarcadero Technologies) - 204200
#   Kenn Hussey - 535301
#

# NLS_MESSAGEFORMAT_VAR

pluginName = UML2 Ecore Code Generation
providerName = Eclipse Modeling Project

_UI_GeneratingEditTestPackages_message = Generating edit test packages
_UI_GeneratingEditTestsPluginXML_message = Generating edit tests plugin.xml
_UI_GeneratingEditTestsPluginProperties_message = Generating edit tests plugin.properties
_UI_GeneratingEditTestsBuildProperties_message = Generating edit tests build.properties

_UI_GenModel_content_type = UML2 Generator File
_UI_GenModel_1_1_0_content_type = UML2 1.1.0 Generator File
_UI_GenModel_2_2_0_content_type = UML2 2.2.0 Generator File
