# Copyright (c) 2005, 2006 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
#
# $Id: plugin.properties,v 1.8 2006/02/08 22:00:49 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
