# 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

pluginName = UIElements Edit (Incubation)
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_V____________ConstantsAndTypes_____________V_type = VConstants And Types V
_UI_V____________Abstract_____________V_type = VAbstract V
_UI_ApplicationElement_type = Element
_UI_Contribution_type = Contribution
_UI_Dirtyable_type = Dirtyable
_UI_Input_type = Input
_UI_UIElement_type = UI Element
_UI_UILabel_type = UI Label
_UI_Context_type = Context
_UI_V_________AbstractContainers__________V_type = VAbstract Containers V
_UI_ElementContainer_type = Element Container
_UI_GenericStack_type = Generic Stack
_UI_GenericTile_type = Generic Tile
_UI_V______________MenusAndTBs_______________V_type = VMenus And TBs V
_UI_Item_type = Item
_UI_MenuItem_type = Menu Item
_UI_DirectMenuItem_type = Direct Menu Item
_UI_Menu_type = Menu
_UI_ToolItem_type = Tool Item
_UI_DirectToolItem_type = Direct Tool Item
_UI_ToolBar_type = Tool Bar
_UI_V______________RCP_______________V_type = VRCP V
_UI_Application_type = Application
_UI_PSCElement_type = PSC Element
_UI_Part_type = Part
_UI_PartDescriptor_type = Part Descriptor
_UI_PartDescriptorContainer_type = Part Descriptor Container
_UI_SaveablePart_type = Saveable Part
_UI_PartStack_type = Part Stack
_UI_PartSashContainer_type = Part Sash Container
_UI_Window_type = Window
_UI_ModelComponents_type = Model Components
_UI_ModelComponent_type = Model Component
_UI_V______________Commands_______________V_type = VCommands V
_UI_BindingContainer_type = Binding Container
_UI_Command_type = Command
_UI_CommandParameter_type = Command Parameter
_UI_Handler_type = Handler
_UI_HandlerContainer_type = Handler Container
_UI_HandledItem_type = Handled Item
_UI_HandledMenuItem_type = Handled Menu Item
_UI_HandledToolItem_type = Handled Tool Item
_UI_KeyBinding_type = Key Binding
_UI_KeySequence_type = Key Sequence
_UI_Parameter_type = Parameter
_UI_V______________Trim_______________V_type = VTrim V
_UI_TrimContainer_type = Trim Container
_UI_WindowTrim_type = Window Trim
_UI_V______________Editing_______________V_type = VEditing V
_UI_Editor_type = Editor
_UI_V______________SharedElements_______________V_type = VShared Elements V
_UI_Placeholder_type = Placeholder
_UI_Perspective_type = Perspective
_UI_PerspectiveStack_type = Perspective Stack
_UI_V_________Testing__________V_type = VTesting V
_UI_TestHarness_type = Test Harness
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_ApplicationElement_id_feature = Id
_UI_ApplicationElement_style_feature = Style
_UI_Contribution_URI_feature = URI
_UI_Contribution_object_feature = Object
_UI_Contribution_persistedState_feature = Persisted State
_UI_Dirtyable_dirty_feature = Dirty
_UI_Input_inputURI_feature = Input URI
_UI_UIElement_widget_feature = Widget
_UI_UIElement_renderer_feature = Renderer
_UI_UIElement_toBeRendered_feature = To Be Rendered
_UI_UIElement_onTop_feature = On Top
_UI_UIElement_visible_feature = Visible
_UI_UIElement_parent_feature = Parent
_UI_UIElement_containerData_feature = Container Data
_UI_UILabel_label_feature = Label
_UI_UILabel_iconURI_feature = Icon URI
_UI_UILabel_tooltip_feature = Tooltip
_UI_Context_context_feature = Context
_UI_Context_variables_feature = Variables
_UI_ElementContainer_children_feature = Children
_UI_ElementContainer_activeChild_feature = Active Child
_UI_GenericTile_horizontal_feature = Horizontal
_UI_Item_enabled_feature = Enabled
_UI_Item_selected_feature = Selected
_UI_Item_type_feature = Type
_UI_Application_commands_feature = Commands
_UI_Part_menus_feature = Menus
_UI_Part_toolbar_feature = Toolbar
_UI_PartDescriptor_allowMultiple_feature = Allow Multiple
_UI_PartDescriptor_category_feature = Category
_UI_PartDescriptorContainer_descriptors_feature = Descriptors
_UI_Window_mainMenu_feature = Main Menu
_UI_Window_x_feature = X
_UI_Window_y_feature = Y
_UI_Window_width_feature = Width
_UI_Window_height_feature = Height
_UI_ModelComponents_components_feature = Components
_UI_ModelComponent_positionInParent_feature = Position In Parent
_UI_ModelComponent_parentID_feature = Parent ID
_UI_ModelComponent_children_feature = Children
_UI_ModelComponent_commands_feature = Commands
_UI_ModelComponent_handlers_feature = Handlers
_UI_BindingContainer_bindings_feature = Bindings
_UI_Command_commandName_feature = Command Name
_UI_Command_description_feature = Description
_UI_Command_parameters_feature = Parameters
_UI_CommandParameter_name_feature = Name
_UI_CommandParameter_typeId_feature = Type Id
_UI_CommandParameter_optional_feature = Optional
_UI_Handler_command_feature = Command
_UI_HandlerContainer_handlers_feature = Handlers
_UI_HandledItem_command_feature = Command
_UI_HandledItem_wbCommand_feature = Wb Command
_UI_HandledItem_parameters_feature = Parameters
_UI_KeyBinding_command_feature = Command
_UI_KeyBinding_parameters_feature = Parameters
_UI_KeySequence_keySequence_feature = Key Sequence
_UI_Parameter_tag_feature = Tag
_UI_Parameter_value_feature = Value
_UI_TrimContainer_side_feature = Side
_UI_Placeholder_ref_feature = Ref
_UI_Unknown_feature = Unspecified

_UI_ItemType_Push_literal = Push
_UI_ItemType_Check_literal = Check
_UI_ItemType_Radio_literal = Radio
_UI_ItemType_Separator_literal = Separator
_UI_SideValue_Top_literal = Top
_UI_SideValue_Bottom_literal = Bottom
_UI_SideValue_Left_literal = Left
_UI_SideValue_Right_literal = Right
_UI_StringToStringMap_type = String To String Map
_UI_StringToStringMap_key_feature = Key
_UI_StringToStringMap_value_feature = Value
_UI_ApplicationElement_tags_feature = Tags
_UI_Context_properties_feature = Properties
_UI_ElementContainer_selectedElement_feature = Selected Element
