# Copyright (c) 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.2 2006/05/25 16:42:17 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.
# ====================================================================

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

pluginName = UML2 UML Importer for EMF
providerName = Eclipse.org

_UI_UMLImporter_label = UML model
_UI_UMLModelImporter_description = Creates ecore and genmodel files based on a UML model

_UI_UMLImport_title = UML Import
_UI_UMLImportFile_description = Choose options, specify one or more URIs, and try to load them
_UI_UMLImportNewProject_description = Choose options, specify one or more URIs, try to load them, and choose a target generator model name

_UI_ErrorsWereDetectedUML_message =  Problems were detected while validating and converting the UML models
_UI_SpecifyAValidUMLModel_message = Specify a valid UML 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
_UI_SuperClassOrder_label = Super Class Order
_UI_AnnotationDetails_label = Annotation Details

_UI_IgnoreAll_label = Ignore All
_UI_ProcessAll_label = Process All
