
# Copyright (c) 2010, 2011 Technical University of Denmark.
# 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:
#    Patrick Koenemann, DTU Informatics - initial API and implementation
#
# $Id: plugin.properties,v 1.1 2010/09/10 15:40:34 cbrun Exp $

pluginName = Test meta model for MPatches
providerName = Eclipse Modeling Project

_UI_EachonceEditor_menu = &Eachonce Editor

_UI_CreateChild_menu_item = &New Child
_UI_CreateSibling_menu_item = N&ew Sibling

_UI_ShowPropertiesView_menu_item = Show &Properties View
_UI_RefreshViewer_menu_item = &Refresh

_UI_SelectionPage_label = Selection
_UI_ParentPage_label = Parent
_UI_ListPage_label = List
_UI_TreePage_label = Tree
_UI_TablePage_label = Table
_UI_TreeWithColumnsPage_label = Tree with Columns
_UI_ObjectColumn_label = Object
_UI_SelfColumn_label = Self

_UI_NoObjectSelected = Selected Nothing
_UI_SingleObjectSelected = Selected Object: {0}
_UI_MultiObjectSelected = Selected {0} Objects

_UI_OpenEditorError_label = Open Editor

_UI_Wizard_category = Example EMF Model Creation Wizards

_UI_CreateModelError_message = Problems encountered in file "{0}"

_UI_EachonceModelWizard_label = Eachonce Model
_UI_EachonceModelWizard_description = Create a new Eachonce model

_UI_EachonceEditor_label = Eachonce Model Editor

_UI_EachonceEditorFilenameDefaultBase = My
_UI_EachonceEditorFilenameExtensions = eachonce

_UI_Wizard_label = New

_WARN_FilenameExtension = The file name must end in ''.{0}''
_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}

_UI_ModelObject = &Model Object
_UI_XMLEncoding = &XML Encoding
_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
_UI_Wizard_initial_object_description = Select a model object to create

_UI_FileConflict_label = File Conflict
_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?


_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.

_UI_PropertyDescriptor_description = The {0} of the {1}

_UI_Entity_type = Entity
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Entity_singleAttribute_feature = Single Attribute
_UI_Entity_multiAttribute_feature = Multi Attribute
_UI_Entity_singleReference_feature = Single Reference
_UI_Entity_multiReference_feature = Multi Reference
_UI_Entity_children_feature = Children
_UI_Unknown_feature = Unspecified


_UI_Entity_additionalAttribute_feature = Additional Attribute
_UI_Entity_children2_feature = Children2
