#-------------------------------------------------------------------------------
# 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=Export Microsoft Project

# Select Export Options Wizard Page
selectExportOptionsWizardPage_title=Select export options
selectExportOptionsWizardPage_text=Select the method configuration and export options that will be used to export the selected process.
selectedProcessLabel_text=Selected process:
configurationLabel_text=Method configuration:
publishWebSiteCheckBox_text=Publish the process website
publishConfigButton_text=Publish the entire method configuration
publishProcessButton_text=Publish content that is only relevant to the selected process
exportOnlyPlannedElementsCheckBox_text=Export only breakdown elements that are planned

# Select Publishing Options Wizard Page
selectPublishOptionsWizardPage_title=Select publishing options
selectPublishOptionsWizardPage_text=Select the publishing options that will be used to publish the website for the exported process.

# Select Export Directory Wizard page
selectExportDirWizardPage_title=Specify project name and export directory
selectExportDirWizardPage_text=Specify the Microsoft Project name and export directory.
projectNameLabel_text=Name:
dirLabel_text=Directory:
browseButton_text=Browse...

# Progress Messages
exportMSPTask_name=Exporting selected process to Microsoft Project...

# Warning Messages
overwriteText_msg=IUPM0100W: A Microsoft Project ''{0}'' already exists in ''{1}''.\n\nDo you want to overwrite it?
missingProcessContentWarning_msg=IUPM0102W: The published process website will not contain any content related to the exported process.\n\nDo you want to proceed?

# Informational Messages
completedText_msg=IUPM0103I: The selected process ''{0}'' has been successfully exported to Microsoft Project XML file ''{1}''.

# Error Messages
exportMSPError_msg=IUPM0105E: An error has occurred while exporting the selected process ''{0}'' to Microsoft Project ''{1}''.
exportMSPError_reason=Click Details for more information.
exportMSPInternalError_msg=An internal error has occurred.
illegalArgument_msg={0} returns a null or invalid value.
