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

_EXC_SaveFailed = The save operation failed to complete
_EXC_InvalidEditorInput = The editor input is invalid; IFileEditorInput is expected

_UI_NameMatchMappingAction_label = Match by &Name
_UI_NameMatchMappingAction_description = Create mappings for children with matching names

_UI_TypeMatchMappingAction_label = Match by &Type
_UI_TypeMatchMappingAction_description = Create mappings for children with matching types

_UI_Top_label = Top
_UI_Bottom_label = Bottom
_UI_Overview_label = Overview
_UI_Composition_label = Composition

_UI_SelectedMapping_statusline_prefix = Selected Mapping:
_UI_SelectedMappedObject_statusline_prefix = Selected Mapped Object:
_UI_Selected_statusline_prefix = Selected {0} objects

_UI_FilterMappedObjects_menu_item = Filter Mapped Objects
_UI_FilterMappedObjects_description = Show only the unmapped objects

_UI_FilterUnmappedObjects_menu_item = Filter Unmapped Objects
_UI_FilterUnmappedObjects_description = Show only the mapped objects

_UI_ShowMultipleInputColumns_menu_item = Show Multiple Input Columns
_UI_ShowMultipleInputColumns_description = Show each root in it's own column

_UI_NextMappedObject_menu_item = Next Mapped Object
_UI_NextMappedObject_description = Select the next mapped object

_UI_PreviousMappedObject_menu_item = Previous Mapped Object
_UI_PreviousMappedObject_description = Select the previous mapped object

_UI_NextUnmappedObject_menu_item = Next Unmapped Object
_UI_NextUnmappedObject_description = Select the next unmapped object

_UI_PreviousUnmappedObject_menu_item = Previous Unmapped Object
_UI_PreviousUnmappedObject_description = Select the previous unmapped object

_UI_SelectOtherMappedObjects_menu_item = Select Other Mapped Objects
_UI_SelectOtherMappedObjects_description = Select the corresponding mapped objects in the other view

_UI_ShowTopFirst_menu_item = Show {0} First
_UI_ShowTopFirst_description = Show {0} in the first column

_UI_ShowMultipleColumns_menu_item = Show Multiple Columns
_UI_ShowMultipleColumns_unchecked_description = Show each root in it's own column
_UI_ShowMultipleColumns_checked_description = Show all roots in the same column

_UI_FilterUnmappedObjects_unchecked_description = Show only the mapped objects
_UI_FilterUnmappedObjects_checked_description = Show both the mapped and unmapped objects

_UI_FilterMappedObjects_unchecked_description = Show only the unmapped objects
_UI_FilterMappedObjects_checked_description = Show both the mapped and unmapped objects

_UI_OutlineFilter_unchecked_description = Hide the mapped objects
_UI_OutlineFilter_checked_description = Show the mapped objects
