#-------------------------------------------------------------------------------
# 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

# Export Microsoft Project Wizard
exportMSPWizard_title=\u532f\u51fa Microsoft Project

# Select Export Options Wizard Page
selectExportOptionsWizardPage_title=\u9078\u53d6\u532f\u51fa\u9078\u9805
selectExportOptionsWizardPage_text=\u9078\u53d6\u532f\u51fa\u6240\u9078\u6d41\u7a0b\u6642\u6240\u8981\u4f7f\u7528\u7684\u65b9\u6cd5\u914d\u7f6e\u548c\u532f\u51fa\u9078\u9805\u3002
selectedProcessLabel_text=\u6240\u9078\u7684\u6d41\u7a0b\uff1a
configurationLabel_text=\u65b9\u6cd5\u914d\u7f6e\uff1a
publishWebSiteCheckBox_text=\u767c\u4f48\u6d41\u7a0b\u7db2\u7ad9
publishConfigButton_text=\u767c\u4f48\u6574\u500b\u65b9\u6cd5\u914d\u7f6e
publishProcessButton_text=\u50c5\u767c\u4f48\u548c\u6240\u9078\u6d41\u7a0b\u76f8\u95dc\u7684\u5167\u5bb9
exportOnlyPlannedElementsCheckBox_text=\u53ea\u532f\u51fa\u5df2\u898f\u5283\u7684\u5206\u89e3\u5143\u7d20

# Select Publishing Options Wizard Page
selectPublishOptionsWizardPage_title=\u9078\u53d6\u767c\u4f48\u9078\u9805
selectPublishOptionsWizardPage_text=\u9078\u53d6\u767c\u4f48\u6240\u532f\u51fa\u6d41\u7a0b\u7684\u7db2\u7ad9\u6642\u6240\u8981\u4f7f\u7528\u7684\u767c\u4f48\u9078\u9805\u3002

# Select Export Directory Wizard page
selectExportDirWizardPage_title=\u6307\u5b9a\u5c08\u6848\u540d\u7a31\u548c\u532f\u51fa\u76ee\u9304
selectExportDirWizardPage_text=\u6307\u5b9a Microsoft Project \u540d\u7a31\u548c\u532f\u51fa\u76ee\u9304\u3002
projectNameLabel_text=\u540d\u7a31\uff1a
dirLabel_text=\u76ee\u9304\uff1a
browseButton_text=\u700f\u89bd...

# Progress Messages
exportMSPTask_name=\u5c07\u9078\u53d6\u7684\u6d41\u7a0b\u532f\u51fa\u5230 Microsoft Project...

# Warning Messages
overwriteText_msg=IUPM0100W: Microsoft Project ''{0}'' \u5df2\u5b58\u5728\u65bc ''{1}'' \u4e2d\u3002\n\n\u60a8\u8981\u6539\u5beb\u5b83\u55ce\uff1f
missingProcessContentWarning_msg=IUPM0102W: \u6240\u767c\u4f48\u7684\u6d41\u7a0b\u7db2\u7ad9\u4e0d\u6703\u5305\u542b\u6240\u532f\u51fa\u6d41\u7a0b\u7684\u4efb\u4f55\u76f8\u95dc\u5167\u5bb9\u3002\n\n\u8981\u7e7c\u7e8c\u55ce\uff1f

# Informational Messages
completedText_msg=IUPM0103I: \u6240\u9078\u7684\u6d41\u7a0b ''{0}'' \u5df2\u9806\u5229\u532f\u51fa\u5230 Microsoft Project XML \u6a94 ''{1}''\u3002

# Error Messages
exportMSPError_msg=IUPM0105E: \u5c07\u6240\u9078\u7684\u6d41\u7a0b ''{0}'' \u532f\u51fa\u5230 Microsoft Project ''{1}'' \u6642\u767c\u751f\u932f\u8aa4\u3002
exportMSPError_reason=\u5982\u9700\u76f8\u95dc\u8cc7\u8a0a\uff0c\u8acb\u6309\u4e00\u4e0b\u300c\u8a73\u7d30\u8cc7\u6599\u300d\u3002
exportMSPInternalError_msg=\u767c\u751f\u5167\u90e8\u932f\u8aa4\u3002
illegalArgument_msg={0} \u50b3\u56de\u7a7a\u503c\u6216\u7121\u6548\u503c\u3002
