# Copyright (c) 2005 IBM Corporation 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
#
# $: plugin.properties,v 1.7 2005/03/31 18:17:18 khussey Exp $

# NLS_MESSAGEFORMAT_VAR

# ====================================================================
# Do NOT change the properties between this line and the
# "%%% END OF TRANSLATED PROPERTIES %%%" line.
# Make a new property name, append to the end of the file and change
# the code to use the new property.
# ====================================================================

pluginName = UML2 Importer for EMF
providerName = Eclipse.org

_UI_UML2Importer_label = UML2 model
_UI_UML2ModelImporter_description = Creates ecore and genmodel files based on a UML2 model

_UI_UML2Import_title = UML2 Import
_UI_UML2ImportFile_description = Choose options, specify one or more '.uml2' URIs, and try to load them
_UI_UML2ImportNewProject_description = Choose options, specify one or more '.uml2' URIs, try to load them, and choose a target generator model name

_UI_ErrorsWereDetectedUML2_message =  Problems were detected while validating and converting the UML2 models
_UI_SpecifyAValidUML2Model_message = Specify a valid UML2 model and try loading again

_UI_Options_label = Options

_UI_Discard_label = Discard
_UI_Ignore_label = Ignore
_UI_Process_label = Process
_UI_Report_label = Report

_UI_EcoreTaggedValues_label = Ecore Tagged Values
_UI_DerivedFeatures_label = Derived Features
_UI_DuplicateFeatureInheritance_label = Duplicate Feature Inheritance
_UI_DuplicateFeatures_label = Duplicate Features
_UI_DuplicateOperationInheritance_label = Duplicate Operation Inheritance
_UI_DuplicateOperations_label = Duplicate Operations
_UI_RedefiningOperations_label = Redefining Operations
_UI_RedefiningProperties_label = Redefining Properties
_UI_SubsettingProperties_label = Subsetting Properties
_UI_UnionProperties_label = Union Properties

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

_UI_SuperClassOrder_label = Super Class Order
_UI_AnnotationDetails_label = Annotation Details

_UI_IgnoreAll_label = Ignore All
_UI_ProcessAll_label = Process All
