# Copyright (c) 2014-2016 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 Setup Editor
providerName = Eclipse Oomph Project

_UI_SetupEditor_menu = &Setup Editor

_UI_CreateChild_menu_item = &New Child
_UI_CreateSibling_menu_item = N&ew Sibling
_UI_AdditionalTasks_menu_item = Additional &Tasks
_UI_AdditionalElements_menu_item = Additional E&lements

_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_OomphWizard_category = Oomph

_UI_CreateModelError_message = Problems encountered in file "{0}"
_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 = Choose a template and enter the required values.
_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_SetupEditor_label = Setup Editor
_UI_SetupEditorFilenameDefaultBase = MyExample
_UI_SetupEditorFilenameExtensions = setup

_UI_SetupModelWizard_label = Setup Project Model
_UI_SetupModelWizard_description = Create a new project setup model with the camel case name of the project

_UI_SetupModelWizard_label2 = Setup Product Model
_UI_SetupModelWizard_description2 = Create a new product setup model with the camel case name of the product

_UI_SetupModelWizard_label3 = Setup Configuration Model
_UI_SetupModelWizard_description3 = Create a new configuration setup model with the camel case name of the configuration

_UI_SetupModelWizard_label4 = Setup Index Model
_UI_SetupModelWizard_description4 = Create a new index setup model

_UI_SetupModelWizard_label5 = Setup Product Catalog Model
_UI_SetupModelWizard_description5 = Create a new product catalog setup model

_UI_SetupModelWizard_label6 = Setup Project Catalog Model
_UI_SetupModelWizard_description6 = Create a new project catalog setup model

