# Copyright (c) 2006, 2014 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 v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors: 
#   IBM - initial API and implementation
#   Kenn Hussey (Embarcadero Technologies) - 204200
#   Kenn Hussey (CEA) - 327039, 418466
#   Christian W. Damus (CEA) - 382342
#

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