# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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 implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR
#
# Message ID Range:
#

# Export XML Wizard
exportXMLWizard_title=Export XML

# Select Export Type Wizard Page
selectExportTypePage_desc=Select the type of method library content to export.
exportLibraryRadioButton_text=Export the entire method library
exportPluginsRadioButton_text=Export one or more method plug-ins
exportConfigsRadioButton_text=Export a method configuration

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Specify export file
selectXMLFilePage_desc=Specify a destination XML file to store the exported method library content.
fileLabel_text=XML File:
browseButton_text=Browse...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' already exists.\nDo you want to overwrite it?

# Progress Messages
exportingXML_text=Export method library content to XML file...

# Error Messages
invalidXMLFile_error=The specified XML file is not valid.
exportXMLWizard_error=IUPM0000E: The Export failed: {0}
exportXMLWizard_reviewLog=Export completed. Please review the log files under the export directory.
exportXMLService_error=Error exporting library: {0}
exportXMLService_feature_error=Error setting feature value:: Element={0}, feature={1}
xmlLibrary_error_load_xml=Unable to load XML source ''{0}''
xmlLibrary_no_plugin=No method plug-in for id {0}
xmlLibrary_no_feature=Unable to get XML feature for {0}_{1}
xmlLibrary_no_class=Unable to get EClass for {0}
xmlLibrary_error_create_element=Error creating element, do not know how to set value for feature {0}
xmlLibrary_error_set_value=Error creating element, cannot set value {0} to container {1}
xmlLibrary_invalid_feature_value=Invalid attribute feature value for feature {0}, with value {1}
xmlLibrary_error_set_value_2=Error setting attribute, Unable to set value for feature={0}, object={1}, value={2}
xmlLibrary_error_set_value_3=Don''t know how to set value for feature={0}, object={1}, value={2}
xmlLibrary_error_set_reference=Error setting reference, Unable to set value for feature={0}, object={1}, value={2}
xmlLibrary_error_process_wrong_container=Process ''{0}'' does not have a valid container. The container is of type ''{1}'', which is not a process package.
xmlLibrary_new_id=Element {0} is assigned with a new id {1} because it does not have a valid one
xmlLibrary_id_not_unique=Element Id ''{0}'' is used by more than one element

export_config_to_temp_location=Export configuration to a temporary location
open_lib_from_temp_exported_location=Open library from the temporary exported location


