# Copyright (c) 2006, 2009 IBM Corporation, Embarcadero Technologies, 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) - 209864, 204200
#
# $Id: plugin.properties,v 1.8 2009/04/07 18:23:26 jbruck Exp $

# NLS_MESSAGEFORMAT_VAR

pluginName = UML2 UML Importer for EMF
providerName = Eclipse Modeling Project

_UI_UMLImporter_label = UML model
_UI_UMLModelImporter_description = Create the Ecore model based on UML or CMOF models

_UI_UMLImport_title = UML Import
_UI_UMLImportFile_description = Choose options, specify one or more '.uml2', '.uml', '.xmi', or '.cmof' URIs, and try to load them
_UI_UMLImportNewProject_description = Choose options, specify one or more '.uml2', '.uml', '.xmi', or '.cmof' 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
