#/*******************************************************************************
# * Copyright (c) 2008 IBM Corporation 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 Corporation - initial API and implementation
# *******************************************************************************/

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = STEM Utilities Test Suite
providerName = Eclipse.org

_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_TestEdgeDecorator1_type = Test Edge Decorator1
_UI_TestGraphDecorator1_type = Test Graph Decorator1
_UI_TestNodeDecorator1_type = Test Node Decorator1
_UI_TestScenarioGraphDecorator1_type = Test Scenario Graph Decorator1
_UI_EdgeDecorator_type = Edge Decorator
_UI_GraphDecorator_type = Graph Decorator
_UI_NodeDecorator_type = Node Decorator
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_TestEdgeDecorator1_nodeAURI_feature = Node AURI
_UI_TestEdgeDecorator1_nodeBURI_feature = Node BURI
_UI_TestEdgeDecorator1_edgeURI_feature = Edge URI
_UI_Unknown_feature = Unspecified

_UI_DecoratorsEditor_menu = &Decorators 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_DecoratorsModelWizard_label = Decorators Model
_UI_DecoratorsModelWizard_description = Create a new Decorators model
_UI_DecoratorsEditor_label = Decorators Model Editor
_UI_DecoratorsEditorFilenameDefaultBase = My
_UI_DecoratorsEditorFilenameExtension = decorators
_UI_Wizard_label = New
_WARN_FilenameExtension = The file name must end in ".{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_TestDynamicEdgeLabel_type = Test Dynamic Edge Label
_UI_TestDynamicLabel1_type = Test Dynamic Label1
_UI_TestDynamicNodeLabel_type = Test Dynamic Node Label
_UI_TestIntegerLabelValue_type = Test Integer Label Value
_UI_TestLabel_type = Test Label
_UI_TestStaticEdgeLabel_type = Test Static Edge Label
_UI_TestStaticNodeLabel_type = Test Static Node Label
_UI_TestIntegerLabelValue_i_feature = I
_UI_LabelsEditor_menu = &Labels Editor
_UI_LabelsModelWizard_label = Labels Model
_UI_LabelsModelWizard_description = Create a new Labels model
_UI_LabelsEditor_label = Labels Model Editor
_UI_LabelsEditorFilenameDefaultBase = My
_UI_LabelsEditorFilenameExtension = labels

_UI_TestScenarioGraphDecorator1_doubleValue_feature = Double Value
_UI_TestScenarioGraphDecorator1_intValue_feature = Int Value
_UI_TestScenarioGraphDecorator1_stringValue_feature = String Value
_UI_TestScenarioGraphDecorator1_sTEMTimeValue_feature = STEM Time Value
_UI_TestScenarioGraphDecorator1_booleanValue_feature = Boolean Value
_UI_DecoratorsEditorFilenameExtensions = decorators
_UI_LabelsEditorFilenameExtensions = labels
_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
