# /**
#  * Copyright (c) 2002-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 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
providerName = Eclipse Modeling Project

_EXC_Method_not_implemented = The method {0} is not implemented

_UI_AddCommand_label = Add
_UI_AddCommand_description = Insert the objects into the feature of the owner
_UI_AddCommand_description_for_list = Insert the objects into the list

_UI_CopyCommand_label = Copy
_UI_CopyCommand_description = Create a recursive copy of the objects and their children

_UI_CopyToClipboardCommand_label = Copy to Clipboard
_UI_CopyToClipboardCommand_description = Copy the objects to the clipboard

_UI_CreateCopyCommand_label = Create Copy
_UI_CreateCopyCommand_description = Create a copy of the object

_UI_CutToClipboardCommand_label = Cut
_UI_CutToClipboardCommand_description = Delete the objects and place them in the clipboard

_UI_DragAndDropCommand_label = Drag and Drop
_UI_DragAndDropCommand_description = Drag the objects and drop them on some other object

_UI_InitializeCopyCommand_label = Initialize Copy
_UI_InitializeCopyCommand_description =  Initialize the copy of the other object

_UI_MoveCommand_label = Move
_UI_MoveCommand_description =  Move the value to a new index within the feature of the object
_UI_MoveCommand_description_for_list =  Move the value to a new index within the list

_UI_PasteFromClipboardCommand_label = Paste from Clipboard
_UI_PasteFromClipboardCommand_description = Paste the contents of the clipboard into the object

_UI_RemoveCommand_label = Remove
_UI_RemoveCommand_description = Remove the objects from the feature of the owner
_UI_RemoveCommand_description_for_list = Remove the objects from the list

_UI_ReplaceCommand_label = Replace
_UI_ReplaceCommand_description = Replace the object from the feature of the owner with the collection of objects

_UI_SetCommand_label = Set
_UI_SetCommand_description = Set the value to the feature of the owner

_UI_CreateChild_text = {0}
_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_CreateChildCommand_label = New {0}
_UI_CreateChildCommand_description = Create a new object

_UI_Unknown_type = Object
_UI_Unknown_feature = Unspecified

_UI_Property_description = The {0} feature of type {1}

_UI_ResourceSet_label = Resource Set

_UI_ValueProperty_name = Value
_UI_ValueProperty_description = The value

_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}

_UI_Unknown_datatype= Value

_UI_ItemProviderAdapterFactory_extensionpoint = Registered Item Provider Adapter Factories

_UI_DeleteCommand_label = Delete
_UI_DeleteCommand_description = Remove the objects and clean up any other references to them from within the editing domain

_UI_ChildCreationExtender_extensionpoint = Child Creation Extender

_UI_PropertyEditorFactory_extensionpoint = Registered Property Editor Factories

_UI_LoadResources_label = Load Resources
_UI_LoadResources_description = Load the resources into the resource set

