#-------------------------------------------------------------------------------
# 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: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Export Library Configuration
selectExportTypePage_title=Select export type
selectExportTypePage_desc=Select the type of library configuration to export.
selectExportTypePage_configLabel_text=Export a method configuration and all its method plug-ins
selectExportTypePage_configSpecsLabel_text=Export one or more method configuration specifications
selectConfigPage_title=Select method configuration
selectConfigPage_desc=Select a method configuration to export. All referenced method plug-ins in the selected configuration will be included in the export.
selectConfigPage_configsLabel_text=Method configurations:
selectConfigSpecsPage_title=Select configuration specifications
selectConfigSpecsPage_desc=Select one or more method configuration specifications to export.
selectConfigSpecsPage_configsLabel_text=Method configurations:
checkConfigPage_title=Review configuration errors
checkConfigPage_desc=An integrity check has been performed on the selected method configuration. Review the error report and perform the necessary corrective actions.
selectDestinationPage_title=Specify export directory
selectDestinationPage_desc=Specify a destination directory to store the exported configuration.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Export Method Plug-ins
selectPluginsPage_title=Select method plug-ins
selectPluginsPage_desc=Select one or more method plug-ins to export.
selectPluginsPage_pluginsLabel_text=Method plug-ins:
reviewPluginsPage_title=Review dependencies
reviewPluginsPage_desc=Select each method plug-in to review its dependencies. Click Back to select the dependent plug-ins if they must be included in the export.
reviewPluginsPage_pluginsLabel_text=Method Plug-ins:
reviewPluginsPage_dependentPluginsLabel_text=Dependent method plug-ins:
reviewPluginsPage_associatedConfigsLabel_text=Associated method configurations:
exportPluginSummaryPage_title=Confirm export
exportPluginSummaryPage_desc=Confirm the method plug-ins that will be exported.
exportPluginSummaryPage_noPlugin_text=No method plug-in has been selected.
specifyPathPage_title=Specify export directory
specifyPathPage_desc=Specify a destination directory to store the exported method plug-ins.
SavePluginPage_desc=Export the selected plug-ins and configurations to the specified destination directory.
ExportPluginWizard_title=Export Method Plug-in Wizard Error
ExportPluginError_msg=IUPE0000E: Error encountered in exporting

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Export Library Configuration
exportConfigErrorDialog_msg=IUPE0001E: The export operation cannot proceed.

# Progress Messages
analyzingConfigTask_name=Analyzing library configuration...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Exporting configuration...
ConfigurationSpecsExportService_MSG1=Export done.
ExportConfigCheckingPage_summary_1=Checking the integrity of the selected configuration...\n
ExportConfigCheckingPage_summary_2=No configuration selected.\n
ExportConfigCheckingPage_summary_3=There is no problem in the selected configuration.\n
ExportConfigCheckingPage_summary_4=There are {0} problems in the selected configuration. \nYou can open the configuration editor and fix those problems. \nOr you can choose to ignore these problems and continue.
ExportConfigCheckingPage_checking=Checking configuration, please wait...
ExportConfigSelectConfigPage_title=Choose Method Configuration
DestinationCommonPage_label_browse=Browse...
DestinationCommonPage_label_default_dir=Use default directory
ConfigurationExportService_MSG0=Exporting configuration...
ConfigurationExportService_MSG2=IUPE0002E: Export failed: Error loading library
ConfigurationExportService_MSG4=IUPE0003E: Export failed: Error copying library
ConfigurationExportService_MSG1=IUPE0004E: Export failed: Error making library configuration closure
ConfigurationExportService_MSG9=IUPE0005E: Export failed: Error saving library
DestinationCommonPage_label_name=Name:
DestinationCommonPage_label_dir=Directory:
ExportPluginWizard_error=Error
DestinationCommonPage_title=Default Title
DestinationCommonPage_desc=Default description:
PluginExportService_MSG0=Exporting plug-ins...
PluginExportService_MSG1=Creating export directory...
PluginExportService_MSG2=Copying files...
PluginExportService_MSG3=Generating library and resource file...
PluginExportService_MSG4=Export done.
SaveLibraryPage_title=Export Method Plug-in
SavePluginPage_label_name=Export name:
SaveLibraryPage_desc=Export the selected method plug-ins and associated configurations
ExportPluginWizard_MSG1=Analyzing library configuration...
