# /**
#  * Copyright (c) 2002-2010 IBM Corporation and others.
#  * All rights reserved.   This program and the accompanying materials
#  * are made available under the terms of the Eclipse Public License v2.0
#  * which accompanies this distribution, and is available at
#  * http://www.eclipse.org/legal/epl-v20.html
#  * 
#  * Contributors: 
#  *   IBM - Initial API and implementation
#  */

# NLS_MESSAGEFORMAT_VAR

pluginName = EMF Edit UI
providerName = Eclipse Modeling Project


_UI_Copy_menu_item = &Copy
_UI_Cut_menu_item = Cu&t
_UI_Delete_menu_item = &Delete
_UI_Paste_menu_item = &Paste
_UI_FindReplace_menu_item = &Find/Replace...

_UI_CopyValue_menu_item = Copy &Value

_UI_Redo_menu_item = &Redo {0}@Ctrl+Y
_UI_Redo_menu_item_simple_description = Redo the most recently undone action
_UI_Redo_menu_item_description = Redo: {0}

_UI_Undo_menu_item = &Undo {0}@Ctrl+Z
_UI_Undo_menu_item_simple_description = Undo do the most recent action
_UI_Undo_menu_item_description = Undo: {0}

# The feature is 0, and object is 1
_UI_FeatureEditorDialog_title =  {0} -- {1}
_UI_Feature_label = &Feature
_UI_Value_label = &Value
_UI_Choices_label = &Choices
_UI_ValueAndChoices_label = &Value and Choices
_UI_Choices_pattern_group = Filter Available Choices
_UI_Choices_pattern_label = Choice &Pattern (* or ?)
_UI_Up_label = &Up
_UI_Down_label = &Down
_UI_Add_label = &Add
_UI_Remove_label = &Remove

_UI_Validate_menu_item = &Validate
_UI_Validate_simple_description = Validate the selected item

_UI_LiveValidation_menu_item = &Live Validation
_UI_LiveValidation_simple_description = Automatically validate all model changes

_UI_ValidationProblems_title = Validation Problems
_UI_ValidationProblems_message = Problems encountered during validation

_UI_LoadResource_menu_item = &Load Resource...
_UI_LoadResource_menu_item_description = Load a resource by specifying a URI
_UI_LoadResourceDialog_title = Load Resource

_UI_Validating_message = Validating {0}

_UI_ValidationOK_message = Validation completed successfully

_UI_ValidationFailed_message = Validation failed with a logged exception

_UI_LocateValue_action = &Locate Value
_UI_LocateValue_action_tool_tip = Locate Value

_UI_SetValue_action = &Set Value
_UI_SetValue_action_tool_tip = Set Value

_UI_ValidationResults_title = Validation Information
_UI_ValidationResults_message = Information encountered during validation

_UI_ControlCommand_label = Control
_UI_UncontrolCommand_label = Uncontrol

_UI_Control_menu_item = &Control...
_UI_Control_menu_item_description = Move the selected object into another resource without changing its container
_UI_Uncontrol_menu_item = Un&control
_UI_Uncontrol_menu_item_description = Return the selected object to the same resource as its container

_UI_ControlDialog_title = Control

_UI_InvalidURI_label = Invalid URI
_WARN_AlreadyInResource = The object is already in the specified resource.
_WARN_ReadOnlyResource = The specified resource is read-only.
_WARN_CannotCreateResource = Unable to create a resource for the specified URI.

_UI_ExistingResource_label = Existing Resource
_WARN_ReplaceResource = The specified resource already exists, but cannot be loaded. Replace it?
_WARN_AddToResource = The specified resource already exists. Add the object to it?
_UI_MarkerLocation = line {0}, column {1}

_UI_MultiLineInputDialog_message = &Enter a value:

_UI_DiagnosisOfNObjects_message = Diagnosis of {0} objects

_UI_QueryDelegateTextViewerFactory_extensionpoint = Registered Query Delegate Text Viewer Factories

_UI_DuplicateValue_message = The feature already contains this value

_UI_NebulaInvalidMissingFormat_diagnostic = A simple date format pattern must be specified
_UI_NebulaInvalidFormat_diagnostic = The format ''{0}'' is invalid: {1}
_UI_NebulaInvalidStyleElements_diagnostic = The style elements {0} are not recognized; choose from {1}
_UI_NebulaInvalidInstanceType_diagnostic = The instance type ''{0}'' is not supported; choose from {1}
_UI_NebulaInvalidCalendarType_diagnostic = The calendar type ''{0}'' is not available: choose from {1}

_UI_Misc_property_category = Misc

_UI_LabelAndProperties_label = Labels and properties
_UI_Labels_label = Labels
_UI_Properties_label = Properties
_UI_ModifiableAttributes_label = Modifiable attributes

_UI_Revert_menu_item = Rever&t

_UI_CollapseAll_menu_item = Collapse All
_UI_CollapseAll_tool_tip = Collapse All Tree Items
_UI_ExpandAll_menu_item = Expand All
_UI_ExpandAll_tool_tip = Expand All Tree Items

