# /**
#  * 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 Mapping
providerName = Eclipse Modeling Project

_EXC_MappingPlugin_getImage_failed = An image for key ''{0}'' failed to load
_EXC_AdapterFactoryMappingDomain_getCorrespondingType_failed = The type name ''{0}'' should be of the form ''PackageName{1}TypeName''

_UI_AddMappingCommand_label = Add Mapping
_UI_AddMappingCommand_description = Add a new mapping

_UI_CreateMappingCommand_label = Create &Mapping
_UI_CreateMappingCommand_description = Create a new mapping

_UI_CreateMappingCommand_onesided_label = Create &One-sided Mapping
_UI_CreateMappingCommand_onesided_description = Create a new one-sided mapping

_UI_MatchMappingCommand_label = Map Matching Children
_UI_MatchMappingCommand_description = Creating mappings between matching input children and output children

_UI_RemoveMappingCommand_label = Remove Mapping
_UI_RemoveMappingCommand_description = Remove the mappings

_UI_RestoreInitialStateCommand_label = Restore Initial State
_UI_RestoreInitialStateCommand_description = Restore the mappings based on executing the persistent commands

_UI_In2out_property_label = In to out
_UI_In2out_property_description = This is the name of the input to output conversion

_UI_Out2in_property_label = Out to in
_UI_Out2in_property_description = This is the name of the output to input conversion

_UI_OutputReadOnly_property_label = Output is read-only
_UI_OutputReadOnly_property_description = This determines whether only meet-in-the-middle mapping is supported

_UI_TopToBottom_property_label = Top to bottom
_UI_TopToBottom_property_description = This determines whether the input is the top or the bottom

_UI_Mapping_label_divider = <-->
_UI_Mapping_label_separator = ,

_UI_Transformation_label = Transformation
_UI_Transformation_description = The transformation information

_UI_Type_mapping_label = Type Mapping
_UI_Type_mapping_description = The type mapping corresponding to the types of objects in the mapping

_UI_Type_mapping_helpers_description = The nested type mapping helpers

_UI_Input_label = Input
_UI_Output_label = Output
_UI_Helper_label = Helper
_UI_Helper_description = A mapping helper

_UI_MappingRoot_type = Root
_UI_Unknown_type = Object
_UI_PropertyDescriptor_description = The {0} of the {1}
_UI_FunctionPair_type = Function Pair
_UI_TypeConverter_type = Type Converter
_UI_Mapping_type = Mapping
_UI_MappingHelper_type = Helper
_UI_MappingStrategy_type = Strategy
_UI_Unknown_feature = Unspecified
_UI_ComplexTypeConverter_type = Complex Type Converter
_UI_FunctionNamePair_type = Function Name Pair

_UI_MappingDomainConfiguration_extensionpoint = Mapping Domain Configuration
_UI_Unknown_datatype= Value
