#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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:
#

# Import XML Wizard
importXMLWizard_title=Import XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Specify import file
selectXMLFilePage_desc=Specify the XML file containing the method library content to import, and select the appropriate import operation to perform.
fileLabel_text=XML File:
browseButton_text=Browse...
optionGroup_text=Import option
overwriteRadioButton_text=Override existing method library content with the imported content
mergeRadioButton_text=Merge imported content into the existing method library

# Progress Messages
importingXML_text=Importing XML library content into the current method library...

# Import XML Error Dialog
review_log_files=The import operation has been completed. Review the log files in the \n''{0}'' folder for any errors.
importXMLError_msg=IUPM0000E: The import operation cannot proceed.
importXMLError_reason=IUPM0009E: The current method library is read-only.\n\nMake sure that ''{0}'' is writable or create a new method library and try again.

# Error Messages
invalidXMLFile_error=The specified XML file is not valid.
versionMismatch_oldData=IUPM0010E: The specified XML file was exported by a previous version ({0}) of {1}. The files must be exported using the current version of {1}.
versionMismatch_oldData_unknown=IUPM0011E: The specified XML file was exported by a previous version of {0}. The files must be exported using the current version of {0}.
versionMismatch_oldTool=IUPM0012E: The specified XML file was exported by a newer version ({0}) of {1}. You must upgrade {1} in order to import the file.  
versionMismatch_oldTool_unknown=IUPM0013E: The specified XML file cannot be opened. You must upgrade {0} in order to import the file.  

importXMLService_element_not_handled=Element not handled: {0}
importXMLService_element_without_id=Element without ID: {0}
importXMLService_import_failed=Import failed: {0}
importXMLService_missing_plugin=Missing required plugin {0}
importXMLService_error_missing_plugins=Missing required plugin(s). Please check the log files for detail

library_error_no_eclass=Error creating ContentCategory: Unable to get EClass for {0}
library_no_package=Unable to find owning package for object {0}
library_error_create_element=Error creating element: {0}
library_object_string=object {0}, feature {1}
library_error_set_attribute_2=Error setting attribute: Invalid attribute feature value {0}
library_error_set_attribute=Error setting attribute for object {0}, feature {1}, and value {2}
library_error_set_attribute_3=Don''t know how to setting attribute for object {0}, feature {1}, and value {2}
library_error_set_reference=Error setting reference for feature {0}: no element with id {1}
library_error_set_reference_2=Error setting reference for object {0}, feature {1}, and value {2}

