# Copyright (c) 2006, 2018 IBM Corporation, Embarcadero Technologies, CEA, 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 (CEA) - 327039, 418466
#   Christian W. Damus (CEA) - 382342
#   Kenn Hussey - 535301
#

# NLS_MESSAGEFORMAT_VAR

pluginName = UML2 UML Examples UI
providerName = Eclipse Modeling Project

_UI_editorActions_label = UML2 UML Examples UI Editor Actions

_UI_DiagnosticOK_message = The operation was successful.
_UI_DiagnosticProblems_message = Problems were ecountered.

_UI_OptionsDialog_message = Please choose options.

_UI_ConvertToUMLModelAction_label = &Convert to UML Model...
_UI_ConvertToUMLActionCommand_label = Convert package ''{0}'' to UML model
_UI_ConvertingToUML_message = Converting package ''{0}'' to UML model...

_UI_ConvertToMenu_label = &Convert To

_UI_EcoreModelAction_label = &Ecore Model...
_UI_ConvertToEcoreActionCommand_label = Convert package ''{0}'' to Ecore package
_UI_ConvertingToEcore_message = Converting package ''{0}'' to Ecore package...

_UI_MetamodelAction_label = &Metamodel
_UI_ConvertToMetamodelActionCommand_label = Convert model {0} to a metamodel

_UI_ModelLibraryAction_label = Model &Library
_UI_ConvertToModelLibraryActionCommand_label = Convert package {0} to a model library

_UI_GenerateMenu_label = &Generate

_UI_PrimitiveTypesMenu_label = &Primitive Types

_UI_StereotypesMenu_label = &Stereotypes

_UI_EcoreAction_label = &Ecore
_UI_GenerateEcorePrimitiveTypesActionCommand_label = Generate Ecore primitive types into model {0}
_UI_GenerateEcoreStereotypesActionCommand_label = Generate Ecore stereotypes into profile {0}

_UI_JavaAction_label = &Java
_UI_GenerateJavaPrimitiveTypesActionCommand_label = Generate Java primitive types into model {0}

_UI_StandardAction_label = &Standard
_UI_GenerateStandardStereotypesActionCommand_label = Generate standard stereotypes into profile {0}

_UI_UML2Action_label = &UML2
_UI_GenerateUML2StereotypesActionCommand_label = Generate UML2 stereotypes into profile {0}

_UI_UMLAction_label = &UML
_UI_GenerateUMLPrimitiveTypesActionCommand_label = Generate UML primitive types into model {0}

_UI_ExternalizeMenu_label = E&xternalize

_UI_KeywordsAction_label = &Keywords
_UI_LabelsAction_label = &Labels

_UI_XMLAction_label = &XML
_UI_GenerateXMLPrimitiveTypesActionCommand_label = Generate XML primitive types into Model {0}

ExamplesCategory_name = UML2 Example Projects
GettingStarted_name = Getting Started with UML2
GettingStarted_description = Creates an example project containing the complete model and source code for the Getting Started with UML2 tutorial on the Eclipse UML2 wiki.
IntroToProfiles_name = Introduction to UML2 Profiles
IntroToProfiles_description = Creates an example project containing the complete profile and source code for the Introduction to UML2 Profiles tutorial on the Eclipse UML2 wiki.
