# ==============================================================================
#*+------------------------------------------------------------------------+
#*| Copyright (c) 2005, 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                    |
#*+------------------------------------------------------------------------+
# ==============================================================================


# ==============================================================================
# Translation Instruction: section to be translated
#
# Edit element labels - These labels appear in the undo and redo action labels
# ==============================================================================
Request_Label_Create=Create {0}
Request_Label_Destroy=Delete Element
Request_Label_DestroyDependents=Delete Dependents of Element
Request_Label_Duplicate=Duplicate
Request_Label_Move=Move
Request_Label_ReorientSource=Change Relationship Source
Request_Label_ReorientTarget=Change Relationship Target



# ==============================================================================
# Translation Instruction: section to be translated
#
# Extension point loading errors messages.
# ==============================================================================

# Indicates that a plugin's element types had loading errors.
# args:
#    0 - the contributing plugin ID
#    1 - the reason why a plugin's element types could not be loaded (should
#        be one of the error or warning messages in the type.*,
#        adviceBinding_*, element_* or elementTypeFactory_* strings below)
#
xml_parsing_ERROR_= Errors occurred in parsing XML element type definitions contributed \
by plugin "{0}": {1}

# Indicates that a plugin's element type bindings had loading errors.
# args:
#    0 - the contributing plugin ID
#    1 - the reason why a plugin's element type bindings could not be loaded (should
#        be one of the error or warning messages in the clientContext_*,
#        or binding_* strings below)
#
xml_parsing_elementTypeBindings_ERROR_= Errors occurred in parsing XML element type bindings contributed \
by plugin "{0}": {1}

# ==============================================================================
# Translation Instruction: section to be translated
#
# Element type access error messages.
# ==============================================================================


# Indicates that an element type could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the ID of the element type
#     1 - the reason for failure to initialize the element type (should be one
#         of the type.reason.* strings, below)
#
type_not_init_WARN_= Error initializing element type "{0}": {1}.  It will be ignored.


# Explanation of failure to initialize element type because no ID was specified.
type_reason_no_id_WARN_= no ID specified


# Explanation of failure to initialize element type because an element type with the
#   same ID has already been registered
type_reason_duplicate_id_WARN_= element type with same ID already exists


# Explanation of failure to initialize metamodel type because no EClass was specified
type_reason_no_eclass_WARN_= no eclass specified


# Explanation of failure to initialize metamodel type because the specified EClass
#   doesn't exist
type_reason_eclass_not_found_WARN_= specified eclass does not exist


# Explanation of failure to initialize specialization type because no specialized
#   types were specified
type_reason_no_specialized_WARN_= no specialized types


# Explanation of failure to initialize specialization type because no ID was
#   specified for a specialized type.
type_reason_no_specialized_id_WARN_= no ID for specialized type


# Explanation of failure to initialize an element type because no name was
#   specified for a parameter.
type_reason_no_param_name_WARN_= no parameter name specified


# Explanation of failure to initialize an element type because no value was
#   specified for a parameter.
type_reason_no_param_value_WARN_= no parameter value specified



# ==============================================================================
# Translation Instruction: section to be translated
#
# Edit helper advice binding access error messages.
# ==============================================================================


# Indicates that an advice binding could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the ID of the advice binding
#     1 - the reason for failure to initialize the advice binding (should be one
#         of the adviceBinding.reason.* strings, below)
#
adviceBinding_not_init_WARN_= Error initializing advice binding "{0}": {1}.  It will be ignored.


# Explanation of failure to initialize advice binding because no ID was specified.
adviceBinding_reason_no_id_WARN_= no ID specified


# Explanation of failure to initialize advice binding because no element type ID was specified.
adviceBinding_reason_no_type_id_WARN_= no type ID specified

# Explanation of failure to initialize advice binding because no edit helper advice class was specified.
adviceBinding_reason_no_edit_helper_advice_id_WARN_= no edit helper advice class specified

# Explanation of failure to initialize advice binding because no an invalid inheritance value was specified.
adviceBinding_reason_invalid_inheritance_WARN_= invalid inheritance value

# ==============================================================================
# Translation Instruction: section to be translated
#
# Element type and edit helper advice binding access error messages.
# ==============================================================================


# Indicates that an element type or advice binding could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the ID of the element type or advice binding
#     1 - the reason for failure to initialize the element type or advice binding (should be one
#         of the element.reason.* strings, below)
#
elment_not_init_WARN_= Error initializing element type or advice binding "{0}": {1}.  It will be ignored.


# Explanation of failure to initialize an element type or advice binding because the
#   enablement could not be converted to an expression.
element_reason_invalid_enablement_expression_WARN_= unable to convert enablement to expression


# Explanation of failure to initialize an element type or advice binding because no feature name was
#   specified for a containment feature.
element_reason_no_econtainmentfeature_qname_WARN_= no containment feature qname specified

# Explanation of failure to initialize an element type or advice binding because no matcher
#   class was  specified.
element_reason_matcher_no_class_WARN_= no matcher class specified

# Explanation of failure to initialize an element type or advice binding because no metamodel was
#   specified for a containment feature name
# args:
#     0 - the containment feature name
element_reason_no_econtainmentfeature_metamodel_WARN_= no metamodel specified for the containment feature "{0}"

# ==============================================================================
# Translation Instruction: section to be translated
#
# Element type factory access error messages.
# ==============================================================================


# Indicates that an element type or advice binding could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the factory class name
#     1 - the reason for failure to initialize the element type factory (should be one
#         of the elementTypeFactory.reason.* strings, below)
elementTypeFactory_not_init_WARN_= Error initializing element type factory "{0}": {1}.  It will be ignored.


# Explanation of failure to initialize an element type factory because no factory class name was
#   specified.
elementTypeFactory_reason_no_factory_WARN_= no element type factory class


# Explanation of failure to initialize an element type factory because no element type kind
#   was specified.
elementTypeFactory_reason_no_kind_WARN_= no element type factory kind



# ==============================================================================
# Translation Instruction: section to be translated
#
# Metamodel access error messages.
# ==============================================================================


# Indicates that a metamodel type could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the metamodel namespace URI
#     1 - the reason for failure to initialize the metamodel (should be one
#         of the metamodel.reason.* strings, below)
metamodel_not_init_WARN_= Error initializing metamodel "{0}": {1}.  It will be ignored.


# Explanation of failure to initialize a metamodel because no namespace URI
#   was specified.
metamodel_reason_no_nsURI_WARN_ = no namespace URI specified


# Explanation of failure to initialize a metamodel because the specified namespace URI
#   could not be found.
metamodel_reason_nsURI_not_found_WARN_ = namespace URI not found



# ==============================================================================
# Translation Instruction: section to be translated
#
# Class initialization error messages.
# ==============================================================================


# Indicates that an advice binding class could not be initialized and is, therefore,
#     removed from the system.
# args:
#     0 - the advice binding class name
adviceBinding_class_not_found_ERROR_= Error initializing advice binding class "{0}".  It will be removed from the system.


# Indicates that an edit helper advice class could not be initialized and is, therefore,
#     removed from the system.
# args:
#     0 - the edit helper advice class name
editHelperAdvice_class_not_found_ERROR_= Error initializing edit helper advice class "{0}".  It will be removed from the system.

# Indicates that an edit helper class could not be initialized and is, therefore,
#     removed from the system.
# args:
#     0 - the edit helper class name
editHelper_class_not_found_ERROR_= Error initializing edit helper class "{0}".  It will be removed from the system.

# Indicates that an matcher class could not be initialized and is, therefore,
#     removed from the system.
# args:
#     0 - the matcher class name
matcher_class_not_found_ERROR_= Error initializing matcher class "{0}".  It will be removed from the system.

# Indicates that a matcher expression could not be evaluated.
# args:
#     0 - the id of the element that contributed the expression
expression_evaluation_failure_ERROR_= Error evaluating matcher expression in "{0}".

# Indicates that an element type factory class could not be initialized and is, therefore,
#     removed from the system.
# args:
#     0 - the element type factory class name
elementTypeFactory_class_not_found_ERROR_= Error initializing element type factory class "{0}".  It will be removed from the system.

# Indicates that a containment feature is not a reference feature.
# args:
#     0 - the feature name
eContainmentFeature_not_reference_feature_ERROR_= Error initializing containment feature "{0}" because it is not a reference feature.

# Indicates that a containment feature does not exist.
# args:
#     0 - the feature name
eContainmentFeature_no_such_feature_ERROR_= Error initializing containment feature "{0}" because it does not exist.

# Indicates that a specialization type specializes more than one metamodel type.
# args:
#     0 - the ID of the specialization type
specializationType_specializes_multiple_metamodel_types_ERROR_= Error initializing specialization type "{0}" because it specializes more than one metamodel type.

# Indicates that a specialization type specializes an element type that does not exist
# args:
#     0 - the ID of the specialization type
#     1 - the ID of the specializes type that does not exist
specializationType_specializes_invalid_id_ERROR_= Error initializing specialization type "{0}" because it specializes type "{1}" which does not exist.


# ==============================================================================
# Translation Instruction: section to be translated
#
# Element type binding initialization error messages.
# ==============================================================================

# Indicates that a client context could not be initialized and is, therefore,
#     not in the system.
# args:
#     0 - the ID of the client context
#     1 - the reason for failure to initialize the client context (should be one
#         of the context_* strings, below)
#
clientContext_not_init_WARN_= Error initializing client context "{0}": {1}.  It will be ignored.

# Indicates that a binding element does not specify the client context that 
# it binds.
#
binding_noContextId_ERROR_= no context specified in binding

# Indicates that a binding element binds a client context that does not exist.
# args:
#     0 - the ID of the client context
#
binding_noSuchContext_ERROR_= client context "{0}" does not exist

# Indicates that a regex pattern to match element type or advice IDs has 
# invalid syntax.
# args:
#     0 - the regex pattern
#
pattern_invalid_syntax_ERROR_= invalid syntax in pattern "{0}"

# Indicates that an element type context binding is missing the reference to 
# the element type or advice that is bound to that context, or the regex 
# pattern that matches the element types or advice that is bound to that context.
# args:
#     0 - the client context identifier
#
binding_no_ref_or_pattern_ERROR_= binding to context "{0}" must have a ''ref'' or ''pattern'' element

# Indicates that an element type context binding has both the reference to 
# the element type or advice that is bound to that context, and the regex 
# pattern that matches the element types or advice that is bound to that context.
# This is not allowed.
# args:
#     0 - the client context identifier
#
binding_both_ref_and_pattern_ERROR_= binding to context "{0}" must not have both ''ref'' and ''pattern'' elements

# Indicates that a <clientContext> extension in a plug-in omitted the matcher
#   definition.
#
context_no_id_ERROR_= No identifier for client context. 

# Indicates that a <clientContext> extension omitted the matcher definition.
#
context_no_matcher_ERROR_= No enablement expression or matcher class specified for client context.

# Indicates that a <clientContext> extension specified a matcher that 
# didn't implement the IElementMatcher interface.
#
context_matcher_wrong_class_ERROR_= Client context matcher must implement IElementMatcher interface.

# ==============================================================================
# Translation Instruction: section to be translated
# ==============================================================================

# Indicates that a client context matcher threw an exception and the context 
# will be removed from the context manager.
# args:
#     0 - the ID of the client context that failed
#
client_matcherFailure_ERROR_= Client context {0} failed with a run-time exception. \
	It is disabled; its element type bindings are removed from the system.

# Indicates that a command to move elements failed to executed because a suitable feature
# could not be found in the target to contain one of the elements being moved.
# args:
#     0 - the element for which a feature could not be found in the target
moveElementsCommand_noTargetFeature= Could not find a feature in the target element to contain "{0}".

# Indicates that a command to destroy a child element failed to execute due to some
# run-time exception.
# args:
#    0 - the localized name of the element type that failed to destroy a child
destroyCommandFailed= Failed to execute destroy child command on element of type "{0}"

# Localized display name of the default element type, for elements that otherwise
# have no registered type.
defaultEditHelper_name= Generic Element

# Indicates that a command to create a new element failed:
#    0 - the localized name of the element type could not be created
createElementCommand_noElementCreated= Could not create the new element of type "{0}"

