# 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:
#

# Import XML Wizard
importXMLWizard_title=\u532f\u5165 XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=\u6307\u5b9a\u532f\u5165\u6a94
selectXMLFilePage_desc=\u6307\u5b9a XML \u6a94\uff0c\u5167\u542b\u8981\u532f\u5165\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u5167\u5bb9\uff0c\u4e26\u9078\u53d6\u9069\u7576\u7684\u532f\u5165\u4f5c\u696d\u4f86\u57f7\u884c\u3002
fileLabel_text=XML \u6a94\uff1a
browseButton_text=\u700f\u89bd...
optionGroup_text=\u5408\u4f75\u9078\u9805
optionGroup1_text=\u6aa2\u67e5\u57fa\u672c\u5916\u639b\u7a0b\u5f0f\u9078\u9805
overwriteRadioButton_text=\u4ee5\u532f\u5165\u7684\u5167\u5bb9\u4f86\u7f6e\u63db\u73fe\u6709\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u5167\u5bb9
mergeRadioButton_text=\u5c07\u532f\u5165\u7684\u5167\u5bb9\u5408\u4f75\u81f3\u73fe\u6709\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab
mergeRadioButton2_text=\u5c07\u532f\u5165\u7684\u5167\u5bb9\u5408\u4f75\u81f3\u73fe\u6709\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\uff08\u5143\u7d20\u5c64\u6b21\u7684\u5408\u4f75\uff09

# Progress Messages
importingXML_text=\u6b63\u5728\u5c07 XML \u7a0b\u5f0f\u5eab\u5167\u5bb9\u532f\u5165\u73fe\u884c\u65b9\u6cd5\u7a0b\u5f0f\u5eab...

# Import XML Error Dialog
review_log_files=\u532f\u5165\u4f5c\u696d\u5df2\u5b8c\u6210\u3002\u8acb\u67e5\u95b1\n''{0}'' \u8cc7\u6599\u593e\u4e2d\u7684\u65e5\u8a8c\u6a94\u662f\u5426\u6709\u4efb\u4f55\u932f\u8aa4\u3002
importXMLError_msg=IUPM0000E: \u7121\u6cd5\u7e7c\u7e8c\u532f\u5165\u4f5c\u696d\u3002
importXMLError_reason=IUPM0009E: \u73fe\u884c\u65b9\u6cd5\u7a0b\u5f0f\u5eab\u662f\u552f\u8b80\u7684\u3002\n\n\u8acb\u78ba\u5b9a\u53ef\u5beb\u5165 ''{0}''\uff0c\u6216\u5efa\u7acb\u65b0\u7684\u65b9\u6cd5\u7a0b\u5f0f\u5eab\uff0c\u7136\u5f8c\u518d\u8a66\u4e00\u6b21\u3002

# Error Messages
invalidXMLFile_error=\u6307\u5b9a\u7684 XML \u6a94\u7121\u6548\u3002
versionMismatch_oldData=IUPM0010E: \u6307\u5b9a\u7684 XML \u6a94\u662f\u5f9e\u820a\u7248 ({0}) \u7684 {1} \u532f\u51fa\u3002\u6a94\u6848\u5fc5\u9808\u4ee5 {1} \u73fe\u884c\u7248\u672c\u532f\u51fa\u3002
versionMismatch_oldData_unknown=IUPM0011E: \u6307\u5b9a\u7684 XML \u6a94\u662f\u5f9e\u820a\u7248\u7684 {0} \u532f\u51fa\u3002\u6a94\u6848\u5fc5\u9808\u4ee5 {0} \u73fe\u884c\u7248\u672c\u532f\u51fa\u3002
versionMismatch_oldTool=IUPM0012E: \u6307\u5b9a\u7684 XML \u6a94\u662f\u5f9e\u8f03\u65b0\u7248 ({0}) \u7684 {1} \u532f\u51fa\u3002\u60a8\u5fc5\u9808\u5347\u7d1a {1} \u624d\u80fd\u532f\u5165\u6a94\u6848\u3002
versionMismatch_oldTool_unknown=IUPM0013E: \u7121\u6cd5\u958b\u555f\u6307\u5b9a\u7684 XML \u6a94\u6848\u3002\u60a8\u5fc5\u9808\u5347\u7d1a {0} \u624d\u80fd\u532f\u5165\u6a94\u6848\u3002

importXMLService_element_not_handled=\u672a\u8655\u7406\u7684\u5143\u7d20\uff1a{0}
importXMLService_element_without_id=\u7121 ID \u7684\u5143\u7d20\uff1a{0}
importXMLService_import_failed=\u532f\u5165\u5931\u6557\uff1a{0}
importXMLService_missing_plugin=\u907a\u6f0f\u5fc5\u8981\u7684\u5916\u639b\u7a0b\u5f0f {0}
importXMLService_error_missing_plugins=\u907a\u6f0f\u5fc5\u8981\u7684\u5916\u639b\u7a0b\u5f0f\u3002\u5982\u9700\u8a73\u7d30\u8cc7\u6599\uff0c\u8acb\u67e5\u770b\u65e5\u8a8c\u6a94

library_error_no_eclass=\u5efa\u7acb ContentCategory \u6642\u767c\u751f\u932f\u8aa4\uff1a\u7121\u6cd5\u53d6\u5f97 {0} \u7684 EClass
library_no_package=\u627e\u4e0d\u5230\u7269\u4ef6 {0} \u7684\u4e3b\u63a7\u5957\u4ef6
library_error_create_element=\u5efa\u7acb\u5143\u7d20\u6642\u767c\u751f\u932f\u8aa4\uff1a{0}
library_object_string=\u7269\u4ef6 {0}\uff0c\u7279\u6027 {1}
library_error_set_attribute_2=\u8a2d\u5b9a\u5c6c\u6027\u6642\u767c\u751f\u932f\u8aa4\uff1a\u5c6c\u6027\u7279\u6027\u503c {0} \u7121\u6548
library_error_set_attribute=\u8a2d\u5b9a\u5c6c\u6027\u6642\u767c\u751f\u932f\u8aa4\uff1a\u7269\u4ef6 {0}\uff0c\u7279\u6027 {1}\uff0c\u503c {2}
library_error_set_attribute_3=\u4e0d\u77e5\u5982\u4f55\u8a2d\u5b9a\u5c6c\u6027\uff1a\u7269\u4ef6 {0}\uff0c\u7279\u6027 {1}\uff0c\u503c {2}
library_error_set_reference=\u8a2d\u5b9a\u7279\u6027 {0} \u7684\u53c3\u7167\u6642\u767c\u751f\u932f\u8aa4\uff1a\u627e\u4e0d\u5230 ID {1} \u7684\u5143\u7d20
library_error_set_reference_2=\u8a2d\u5b9a\u53c3\u7167\u6642\u767c\u751f\u932f\u8aa4\uff1a\u7269\u4ef6 {0}\uff0c\u7279\u6027 {1}\uff0c\u503c {2}

