# 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=\u5bfc\u51fa XML

# Select Export Type Wizard Page
selectExportTypePage_desc=\u9009\u62e9\u8981\u5bfc\u51fa\u7684\u65b9\u6cd5\u5e93\u5185\u5bb9\u7684\u7c7b\u578b\u3002
exportLibraryRadioButton_text=\u5bfc\u51fa\u6574\u4e2a\u65b9\u6cd5\u5e93
exportPluginsRadioButton_text=\u5bfc\u51fa\u4e00\u4e2a\u6216\u591a\u4e2a\u65b9\u6cd5\u63d2\u4ef6
exportConfigsRadioButton_text=\u5bfc\u51fa\u65b9\u6cd5\u914d\u7f6e

# Select Destination XML File Wizard Page
selectXMLFilePage_title=\u6307\u5b9a\u5bfc\u51fa\u6587\u4ef6
selectXMLFilePage_desc=\u6307\u5b9a\u4e00\u4e2a\u76ee\u6807 XML \u6587\u4ef6\uff0c\u7528\u4e8e\u5b58\u50a8\u5bfc\u51fa\u7684\u65b9\u6cd5\u5e93\u5185\u5bb9\u3002
fileLabel_text=XML \u6587\u4ef6\uff1a
browseButton_text=\u6d4f\u89c8...

# Overwrite Confirmation Dialog
overwriteText_msg=\u201c{0}\u201d\u5df2\u7ecf\u5b58\u5728\u3002\n\u8981\u8986\u76d6\u5b83\u5417\uff1f
overwriteText_msg1=\u201c{0}\u201d\u5df2\u7ecf\u5b58\u5728\u3002\n\u662f\u5426\u8981\u5c06\u5b83\u4ee5\u53ca\u5b83\u5305\u542b\u7684\u6587\u4ef6\u5939\u201c{1}\u201d\u8986\u76d6\uff1f

# Progress Messages
exportingXML_text=\u5c06\u65b9\u6cd5\u5e93\u5185\u5bb9\u5bfc\u51fa\u5230 XML \u6587\u4ef6...

# Error Messages
invalidXMLFile_error=\u6307\u5b9a\u7684 XML \u6587\u4ef6\u65e0\u6548\u3002
exportXMLWizard_error=IUPM0000E: \u5bfc\u51fa\u5931\u8d25\uff1a{0}
exportXMLWizard_reviewLog=\u5bfc\u51fa\u5b8c\u6210\u3002\u8bf7\u67e5\u770b\u5bfc\u51fa\u76ee\u5f55\u4e0b\u7684\u65e5\u5fd7\u6587\u4ef6\u3002
exportXMLService_error=\u5bfc\u51fa\u5e93\u65f6\u51fa\u9519\uff1a{0}
exportXMLService_feature_error=\u8bbe\u7f6e\u529f\u80fd\u90e8\u4ef6\u503c\u65f6\u51fa\u9519\uff1aElement={0}\uff0cfeature={1}
xmlLibrary_error_load_xml=\u65e0\u6cd5\u88c5\u5165 XML \u6e90\u201c{0}\u201d
xmlLibrary_no_plugin=\u4e0d\u5b58\u5728\u6807\u8bc6\u4e3a {0} \u7684\u65b9\u6cd5\u63d2\u4ef6
xmlLibrary_no_feature=\u65e0\u6cd5\u83b7\u5f97 {0}_{1} \u7684 XML \u529f\u80fd\u90e8\u4ef6
xmlLibrary_no_class=\u65e0\u6cd5\u83b7\u5f97 {0} \u7684 EClass
xmlLibrary_error_create_element=\u521b\u5efa\u5143\u7d20\u65f6\u51fa\u9519\uff0c\u4e0d\u77e5\u9053\u5982\u4f55\u8bbe\u7f6e\u529f\u80fd\u90e8\u4ef6 {0} \u7684\u503c
xmlLibrary_error_set_value=\u521b\u5efa\u5143\u7d20\u65f6\u51fa\u9519\uff0c\u65e0\u6cd5\u4e3a\u5bb9\u5668 {1} \u8bbe\u7f6e\u503c {0}
xmlLibrary_invalid_feature_value=\u529f\u80fd\u90e8\u4ef6 {0} \u7684\u5c5e\u6027\u529f\u80fd\u90e8\u4ef6\u503c {1} \u65e0\u6548
xmlLibrary_error_set_value_2=\u8bbe\u7f6e\u5c5e\u6027\u65f6\u51fa\u9519\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u503c\uff0c\u5373\u65e0\u6cd5\u8bbe\u7f6e feature={0}\u3001object={1}\u3001value={2}
xmlLibrary_error_set_value_3=\u4e0d\u77e5\u9053\u5982\u4f55\u8bbe\u7f6e\u503c\uff0c\u5373\u4e0d\u77e5\u9053\u5982\u4f55\u8bbe\u7f6e feature={0}\u3001object={1}\u3001value={2}
xmlLibrary_error_set_reference=\u8bbe\u7f6e\u5f15\u7528\u65f6\u51fa\u9519\uff0c\u65e0\u6cd5\u8bbe\u7f6e\u503c\uff0c\u5373\u65e0\u6cd5\u8bbe\u7f6e feature={0}\u3001object={1}\u3001value={2}
xmlLibrary_error_process_wrong_container=\u8fdb\u7a0b\u201c{0}\u201d\u6ca1\u6709\u6709\u6548\u7684\u5bb9\u5668\u3002\u5bb9\u5668\u7c7b\u578b\u4e3a\u201c{1}\u201d\uff0c\u8be5\u7c7b\u578b\u4e0d\u662f\u8fdb\u7a0b\u5305\u3002
xmlLibrary_new_id=\u7531\u4e8e\u5143\u7d20 {0} \u6ca1\u6709\u6709\u6548\u7684\u6807\u8bc6\uff0c\u56e0\u800c\u5df2\u88ab\u5206\u914d\u4e86\u65b0\u6807\u8bc6 {1}
xmlLibrary_id_not_unique=\u5143\u7d20\u6807\u8bc6 {0} \u88ab\u591a\u4e2a\u5143\u7d20\u4f7f\u7528

export_config_to_temp_location=\u5bfc\u51fa\u914d\u7f6e\u81f3\u4e34\u65f6\u4f4d\u7f6e
open_lib_from_temp_exported_location=\u4ece\u4e34\u65f6\u5bfc\u51fa\u4f4d\u7f6e\u6253\u5f00\u5e93


