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