# Copyright (c) 2014 Eike Stepper (Berlin, Germany) 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:
#    Eike Stepper - initial API and implementation

pluginName = Oomph Targlets Editor
providerName = Eclipse Oomph Project

_UI_TargletEditor_menu = &Targlet 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_TargletEditor_label = Targlet Model Editor
_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_Targlet_Editor_label = Targlet Editor
_UI_TargletEditorFilenameDefaultBase = My
_UI_TargletEditorFilenameExtensions = targlet
_UI_TargletModelWizard_label = Targlet
_UI_TargletModelWizard_description = Create a new targlet

_UI_CDef_Editor_label = Component Definition Editor
_UI_CDef_ModelName = Component Definition
_UI_CDef_ModelWizard_description = Create a new component definition
_UI_CExt_Editor_label = Component Extension Editor
_UI_CExt_ModelName = Component Extension
_UI_CExt_ModelWizard_description = Create a new component extension
_UI_ErrorPage_description = A problem prevents the new file from being created.


