#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

# Publish Method Configuration Wizard
publishConfigWizard_title=Publish Method Configuration
publishConfigWizard_selectConfigPage_title=Select Method Configuration
publishConfigWizard_selectConfigPage_text=Select the method configuration you would like to publish.

publishConfigWizard_selectOptionsPage_title=Specify Publishing Options
publishConfigWizard_selectOptionsPage_text=Specify the destination directory and publishing options.
publishConfigWizard_methodConfig_text=Method configuration:
publishConfigWizard_destinationGroup_text=Destination directory
publishConfigWizard_directory_text=Path:
publishConfigWizard_useDefaultPath_text=Use default path
publishConfigWizard_useDefaultFeedback_text=Use default feedback URL
publishConfigWizard_webSite_text=Published website
publishConfigWizard_title_text=Title:
publishConfigWizard_bannerImage_text=Banner image:
publishConfigWizard_aboutHTML_text=About content:
publishConfigWizard_feedbackURL_text=Feedback URL:
publishConfigWizard_includeIndex_text=Publish index page
publishConfigWizard_includeGlossary_text=Publish glossary page
publishConfigWizard_includeSearch_text=Include search capability (requires container for servlet)
publishConfigWizard_includeSearches_text=Include search capability
publishConfigWizard_clientSideSearch_text= Client side search (requires Java applet support in browser)
publishConfigWizard_serverSideSearch_text= Server side search (requires Container for servlet)
publishConfigWizard_createWAR_text=Generate WAR (Web ARchive) file
publishConfigWizard_webApplicationName_text=Web application name:
publishConfigWizard_useApplet_text=Support view customization (requires Java applet support in browser)
publishConfigWizard_validationGroup_text=Validation
publishConfigWizard_checkHyperlinks_text=Check external hyperlinks
publishConfigWizard_diagramGroup_text=Diagrams
publishConfigWizard_publish_unopen_activity_dd_text=Publish activity detail diagrams that have not been created in process editor
publishConfigWizard_publish_extend_activity_diagram=Publish activity diagrams for unmodified activity extensions
publishConfigWizard_convertBrokenLinks_text=Convert broken links to plain text
publishConfigWizard_layout_text=Layout
publishConfigWizard_extraDescriptorInfo_text=Publish descriptors with the complete content of the related method content element
publishConfigWizard_lightWeightTree_text=Generate sub-tree structure for task, role, work product and discipline elements without using folders
publishConfigWizard_includeEmptyCategories_text=Publish categories with no categorized elements

publishConfigWizard_siteCustomizationPage_title=Customize Website
publishConfigWizard_siteCustomizationPage_title=Customize Website look and feel
#publishConfigWizard_groupTheme_text=Theme
publishConfigWizard_groupSkin_text=Theme and Skin
publishConfigWizard_showBanner_text=Show banner
publishConfigWizard_selectSkin_text=Select skin:

# publish process wizard page
PublishConfigSelectProcessPage_title=Select publishing type
PublishConfigSelectProcessPage_text=You can either publish the selected configuration or the specified processes in the configuration
PublishConfigSelectProcessPage_label_capability_pattern=Capability Patterns
PublishConfigSelectProcessPage_label_delivery_process=Delivery Processes
PublishConfigSelectProcessPage_label_selectType=Select publishing type
PublishConfigSelectProcessPage_label_type_processes=Publish the processes selected below:
PublishConfigSelectProcessPage_label_type_config=Publish the selected configuration
PublishConfigSelectProcessPage_label_publish_base_processes=Publish Referenced Base Processes

# Publishing Preference Page
preferencePage_defaultPath_text=Default path:

# Confirmation Dialogs
publishConfigDialog_title=Publish Method Configuration
confirmPathDialog_text=The destination path has been resolved to ''{0}''. Do you want to proceed?
overwriteDialog_text=The destination path ''{0}'' already exists. All files in the folder will be deleted. Do you want to proceed?
cancelPublishConfig_msg=The publishing operation has been cancelled.

#info message
publishConfigWizard_selectConfigPage_invalid_views=The following view(s) in configuration ''{0}'' will not be published:
publishConfigWizard_selectConfigPage_invalid_view_contributor={0}: The view is a contributor
publishConfigWizard_selectConfigPage_invalid_view_sameview={0}: This view is a duplicate of another view
publishConfigWizard_selectConfigPage_invalid_view_invalid={0}: This view is not a valid element in the configuration
 
# Error Dialogs
previewConfigError_title=Preview Published Method Configuration
viewReportError_title=View Publishing Report

# Error Messages
missingViewError_msg=IUPP0100W: The selected configuration does not contain a valid view. Edit the configuration and add a view, or select another configuration.
cannotPublishError_msg=IUPP0101E: The selected configuration cannot be published.
invalidPathError_msg=IUPP0102E: The destination path is blank or invalid.
invalidPathCharsError_msg=IUPP0103E: The destination path cannot contain these characters: \\ # * ? " < > | ! % /
publishConfigError_msg=IUPP0104E: The selected configuration was not published successfully.
previewConfigError_msg=IUPP0105E: Unable to open a HTML browser to preview the published configuration.
viewReportError_msg=IUPP0106E: Unable to open a HTML browser to view the publishing report.
webAppNameError_msg=IUPP0107E: The web application name must be specified.
webAppNameCharsError_msg=IUPP0108E: The web application name cannot contain these characters: \\ # * ? " < > | ! % /

# Error Reasons & Recommended Actions
publishConfigError_reason=IUPP0107E: An error has occurred. Select the Details button for more information.
deleteFilesError_reason=The destination path ''{0}'' contains files that cannot be deleted.\n\nClose this dialog and specify another path.
createDirError_reason=The destination path ''{0}'' cannot be created.\n\nClose this dialog and specify another path.
openBrowserError_reason=The default HTML browser on this system cannot be detected or located.\n\nClose this dialog and open the file ''{0}'' manually with a HTML browser.