###############################################################################
# Copyright (c) 2011, 2014 Formal Mind GmbH, University of Duesseldorf 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:
#     Michael Jastram - initial API and implementation
###############################################################################

pluginName = RMF ProR Editor (Incubation)
providerName = Eclipse Modeling Project

_UI_Reqif10Editor_menu = &ProR
_UI_DatatypesEditor_menu = &Datatypes Editor
_UI_ConfigEditor_menu = &Configuration 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 = ProR (ReqIf)

_UI_CreateModelError_message = Problems encountered in file "{0}"

_UI_Reqif10ModelWizard_label = Reqif10 Model
_UI_Reqif10ModelWizard_description = Create a new Reqif10 model

_UI_Reqif10Editor_label = Reqif10 Model Editor

_UI_Reqif10EditorFilenameDefaultBase = My
_UI_Reqif10EditorFilenameExtensions = reqif

_UI_DatatypesModelWizard_label = Datatypes Model
_UI_DatatypesModelWizard_description = Create a new Datatypes model

_UI_DatatypesEditor_label = Datatypes Model Editor

_UI_DatatypesEditorFilenameDefaultBase = My
_UI_DatatypesEditorFilenameExtensions = datatypes

_UI_ConfigModelWizard_label = Config Model
_UI_ConfigModelWizard_description = Create a new Config model

_UI_ConfigEditor_label = Config Model Editor

_UI_ConfigEditorFilenameDefaultBase = My
_UI_ConfigEditorFilenameExtensions = reqif-config

_UI_Wizard_label = New

_UI_ReqifForm_ReqIfFile = ReqIf-File
_UI_ReqifForm_Specifications = Specifications
_UI_ReqifForm_DblClickSpecifications = Doubleclick below to open a specification.  Right-click in the Outline on "Specifications" to create a new one.
_UI_ReqifForm_DocumentProperties = Document Properties
_UI_ReqifForm_Title = Title
_UI_ReqifForm_Comment = Comment
_UI_ReqifForm_CreateTime = Creation Time
_UI_ReqifForm_SourceToolId = Source Tool Id
_UI_ReqifForm_ReqIfToolId = ReqIf Tool Id
_UI_ReqifForm_ReqIfVersion = ReqIf Version
_UI_ReqifForm_Identifier = Identifier
_UI_ReqifForm_RepositoryId = Repository Id


_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_Help_Get_Started_Title = PLACEHOLDER
_UI_Help_Get_Started = PLACEHOLDER

_UI_PROPERTIES_VIEW_COLUMN_PROPERTY = Property
_UI_PROPERTIES_VIEW_COLUMN_VALUE = Value

_UI_Help_Get_Started_Title = ProR - Getting Started
_UI_Help_Get_Started = This Editor allows you to manage your ReqIF-File.  In the section below, you can see and edit the document properties.  Below is a list of all Specifications in this file.\n\nIn the outlook view on the right, you can browse the document.  Selecting any element there will display the properties in the Properties View, where they can be edited.  You can also create or delete elements by right-clicking through the context menu.\n\nMore information is available in the help system, or by selecting ProR | ProR Website from the menu.

_UI_Perspective_label = ProR

_Action_Website = Visit ProR Website (http://eclipse.org/rmf/pror)
_Action_General_Config = General Configuration ...
_Action_Datatype_Config = Datatype Configuration ...
_Action_Column_Config = Column Configuration ...
_Action_Toggle_Links = Toggle SpecRelations (Links)
_Action_Presentation_Config = Presentation Configuration ...

_Action_Initiate_Linking = Initiate Linking ({0})
_Action_Complete_Linking_To = Complete Linking to selection ({0})
_Action_Complete_Linking_From = Complete Linking from selection ({0})
_Action_SpecRelation_Untyped = SpecRelations (untyped)
_Action_SpecRelation_Typed = SpecRelations ({0})

_UI_NoProblems_message = Cool
_UI_DefaultProblem_message = Problems encountered.  The recovered content can be accessed by clicking on the tab 'Selection' below.\n\nClicking on 'Details' will show further information.\n\nCAUTION: By saving the ReqIF model in its current state, the objecting elements will be removed.  This may be desired (e.g. if the problem stem from tool extensions that ProR cannot process).

_UI_Reqif10XhtmlIsSimplifiedTrue = Please note: A simplified attribute value representation is displayed.\n This can lead to potential information loss. However, the original value\n can be restored when reopening the ReqIF model.
_UI_Reqif10XhtmlIsSimplifiedFalse = Please note: A simplified attribute value representation is\n displayed. This can lead to potential information loss. 
_UI_Reqif10XhtmlIsSimplifiedWarning = Please note: A simplified attribute value representation will be created and displayed. This can lead to potential information loss. However, the original value will be remembered and can be restored when reopening the ReqIF model.\n\nYou can disable this warning by setting the "Stop warning when setting isSimplified=true for all ReqIF models." preference in Windows -> Preferences -> ProR.
_UI_Reqif10XhtmlRestoreIsSimplified = Your ReqIF model contains simplified attribute values (isSimplified = true). Do you want to restore the original attribute values?

_UI_PreferencesIsSimplified = ProR Settings
_UI_Standard_Properties = Standard Attributes
_UI_All_Properties = All Attributes

_UI_Import_Wizard_category = ProR (ReqIf)