###############################################################################
#  Copyright (c) 2000, 2009 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 API and implementation
###############################################################################

CommonTab_No_Encoding_Selected=Console encoding not selected
CommonTab__Browse_6=&Browse...
CommonTab__Common_15=&Common
CommonTab_Display_in_favorites_menu__10=Display in favor&ites menu
CommonTab_Invalid_shared_configuration_location_14=Invalid shared configuration location
CommonTab_L_ocal_3=L&ocal file
CommonTab_S_hared_4=S&hared file:
CommonTab_Select_a_location_for_the_launch_configuration_13=Select a location for the launch configuration
CommonTab_Cannot_save_launch_configuration_in_a_closed_project__1=Cannot save launch configuration in a closed project.
CommonTab_10=Launch in bac&kground
CommonTab_11=A&ppend
CommonTab_12=&Workspace...
CommonTab_13=Select a Resource:
CommonTab_14=Select a resource to redirect output to:
CommonTab_0=Save as
CommonTab_1=Console Encoding
CommonTab_2=Defa&ult - inherited ({0})
CommonTab_3=Oth&er
CommonTab_4=Standard Input and Output
CommonTab_5=&Allocate Console (necessary for input)
CommonTab_6=Fi&le:
CommonTab_7=File Syste&m...
CommonTab_8=No file specified for process output
CommonTab_9=Variable&s...

CompileErrorPromptStatusHandler_0=Errors in Workspace
CompileErrorPromptStatusHandler_1=Errors exist in a required project. Continue launch?
CompileErrorPromptStatusHandler_2=Errors exist in required project(s):\n\n{0}\n\nProceed with launch?
CompileErrorProjectPromptStatusHandler_1=&Always launch without asking
# {0} is replaced with a comma separated list of project names
CompileErrorProjectPromptStatusHandler_0={0}...

EnvironmentTab_22=New Environment Variable

LaunchConfigurationDialog__Apply_17=Appl&y
LaunchConfigurationDialog__Name__16=&Name:
LaunchConfigurationDialog_An_exception_occurred_while_retrieving_launch_configurations_20=An exception occurred while retrieving launch configurations

LaunchConfigurationTabGroupViewer_0=''{0}'' is an invalid character in a configuration name
LaunchConfigurationTabGroupViewer_1=Configure launch settings from this dialog:
LaunchConfigurationTabGroupViewer_2=- Press the 'New' button to create a configuration of the selected type.
LaunchConfigurationTabGroupViewer_3=- Edit or view an existing configuration by selecting it.
LaunchConfigurationTabGroupViewer_4=- Press the 'Delete' button to remove the selected configuration.
LaunchConfigurationTabGroupViewer_6=- Press the 'Duplicate' button to copy the selected configuration.
LaunchConfigurationTabGroupViewer_5=Configure launch perspective settings from the <a>Perspectives</a> preference page.
LaunchConfigurationTabGroupViewer_8=- Press the 'Filter' button to configure filtering options.
LaunchConfigurationTabGroupViewer_13=Select a supported <a>launch mode</a>.
LaunchConfigurationTabGroupViewer_14=Mixed launch mode not supported: {0}
LaunchConfigurationTabGroupViewer_15=More than one launcher available - <a>Select other...</a>
LaunchConfigurationTabGroupViewer_16=Using {0} - <a>Select other...</a>
LaunchConfigurationTabGroupViewer_17=Multiple launchers available - <a>Select one...</a>
LaunchConfigurationTabGroupViewer_18=Multiple launchers available - select one to continue
LaunchConfigurationTabGroupViewer_19={0} is an invalid configuration name

LaunchConfigurationDialog_Create__manage__and_run_launch_configurations_8=Create, manage, and run configurations
LaunchConfigurationDialog_Discard_changes__38=Discard changes?
LaunchConfigurationDialog_Do_you_wish_to_discard_changes_37=\nDo you wish to discard changes?\n
LaunchConfigurationDialog_Error_19=Error
LaunchConfigurationDialog_Exception_occurred_creating_launch_configuration_tabs_27=Exception occurred creating launch configuration tabs
LaunchConfigurationDialog_Exception_occurred_while_saving_launch_configuration_47=Exception occurred while saving launch configuration
LaunchConfigurationDialog_Launch_configuration_already_exists_with_this_name_12=A configuration with this name already exists
LaunchConfigurationDialog_Launch_Configuration_Error_46=Launch Configuration Error
LaunchConfigurationDialog_Launch_Configurations_18=Launch Configurations
LaunchConfigurationFilteredTree_save_changes=Save Changes
LaunchConfigurationFilteredTree_search_with_changes=You cannot perform a text search when the current configuration has pending changes.\n\nDo you want to save the changes and continue searching?
LaunchConfigurationFilteredTree_search_with_errors=You cannot perform a text search when the current configuration has errors.\n\nDo you want to discard the changes and continue searching?
LaunchConfigurationDialog_Name_required_for_launch_configuration_11=A name is required for the configuration
LaunchConfigurationDialog_No_33=No
LaunchConfigurationEditDialog_0=Modify configuration and continue.
LaunchConfigurationEditDialog_1=Con&tinue
LaunchConfigurationDialog_Ready_to_launch_2=Ready to launch
LaunchConfigurationDialog_The_configuration___29=The configuration "{0}" has unsaved changes.  Do you wish to save them?
LaunchConfigurationDialog_The_configuration___35=The configuration "{0}" has unsaved changes that CANNOT be saved because of the following error:\n\n
LaunchConfigurationFilteredTree_discard_changes=Discard Changes
LaunchConfigurationDialog_unspecified_28=unspecified
LaunchConfigurationDialog_Yes_32=Yes
LaunchConfigurationDialog_Do_you_wish_to_delete_the_selected_launch_configurations__1=Do you wish to delete the selected launch configurations?
LaunchConfigurationDialog_Do_you_wish_to_delete_the_selected_launch_configuration__2=Do you wish to delete the selected launch configuration?
LaunchConfigurationDialog_Confirm_Launch_Configuration_Deletion_3=Confirm Launch Configuration Deletion
LaunchConfigurationDialog_Close_1=Close
LaunchConfigurationDialog_Revert_2=Re&vert
LaunchConfigurationDialog_Cancel_3=Cance&l
LaunchConfigurationsDialog_Error_1=Error
LaunchConfigurationsDialog_Warning_2=Warning
LaunchConfigurationsDialog_Information_3=Information
LaunchConfigurationsDialog_0=New launch configuration
LaunchConfigurationsDialog_1=Delete selected launch configuration(s)
LaunchConfigurationsDialog_4=Filter launch configurations...
LaunchConfigurationsDialog_5=Duplicates the currently selected launch configuration
LaunchConfigurationSelectionDialog_0=Select Configuration
LaunchConfigurationSelectionDialog_1=&Select a configuration to launch:
LaunchConfigurationView_0=Filter matched {0} of {1} items
LaunchConfigurationsDialog_c_ancel=Cancel

# {0} is substituted with a launch mode - possible values include run, debug, profile, or
# any label of a contributed ILaunchMode.
LaunchConfigurationsDialog_configurations={0} Configurations
PerspectiveManager_Error_1=Error
PerspectiveManager_Unable_to_switch_perpsectives_as_specified_by_launch___0__4=Unable to open perspectives as specified by launch: {0}
PerspectiveManager_Unable_to_switch_to_perspective___0__2=Unable to open perspective: {0}

# {0} is substituted with a launch mode - possible values include Run, Debug, Profile,
# or any label of a contributed ILaunchMode.
LaunchShortcutSelectionDialog_0={0} As

# {0} is substituted with a launch mode - possible values include run, debug, profile, or
# any label of a contributed ILaunchMode.
#
# {1} is the name of the resource being launched (run or debugged, etc.). 
# Possible values can be the name of any IResource in the current workspace: for example
# if you tried to launch a class named Main in the file Main.java and you were presented
# with the selection dialog, the value of {1} would be Main.java (the name of the IResource)
LaunchShortcutSelectionDialog_1=&Select a way to {0} ''{1}'': 
LaunchShortcutSelectionDialog_2=Description
LaunchShortcutSelectionDialog_3=Description not available
# {0} is substituted with a launch mode - possible values include Run, Debug, Profile,
# or any label of a contributed ILaunchMode.
LaunchShortcutSelectionDialog_4=&Select what to {0}:

LaunchConfigurationPresentationManager_0=Tab group extension: {0} for type {1} for the {2} mode has been replaced by extension: {3}
LaunchConfigurationPropertiesDialog_Edit_launch_configuration_properties_1=Edit launch configuration properties
LaunchConfigurationPropertiesDialog_Properties_for__0__2=Edit Configuration

LaunchConfigurationDialog_Modify_attributes_and_launch__1=Edit configuration and launch.

LaunchConfigurationTabGroupViewer_No_tabs_defined_for_launch_configuration_type__0__1=No tabs defined for launch configuration type {0}

DuplicateLaunchConfigurationAction__Duplicate_1=&Duplicate

DeleteLaunchConfigurationAction_Dele_te_1=Dele&te

CreateLaunchConfigurationAction_Ne_w_1=Ne&w
CreateLaunchConfigurationAction_New_configuration_2=New_configuration

EnvironmentTab_Variable_1=Variable
EnvironmentTab_Value_2=Value
EnvironmentTab_Environment_variables_to_set__3=Environment variables to &set:
EnvironmentTab_New_4=N&ew...
EnvironmentTab_Edit_5=E&dit...
EnvironmentTab_Remove_6=Rem&ove
EnvironmentTab_Environment_7=Environment
EnvironmentTab_8=&Name:
EnvironmentTab_9=&Value:

# This externalized string is used in the select environment variables dialog's label provider.
# Each item in the dialog is a single environment variable.
# {0} is replaced with the name of the environment variable
# {1} is replaced with the current value of the environment variable
EnvironmentTab_7={0} [ {1} ]
EnvironmentTab_11=Edit Environment Variable
EnvironmentTab_12=Overwrite variable?
EnvironmentTab_13=A variable named {0} already exists. Overwrite?
EnvironmentTab_16=&Append environment to native environment
EnvironmentTab_17=Re&place native environment with specified environment
EnvironmentTab_18=Se&lect...
EnvironmentTab_19=Select &environment variables to add:
EnvironmentTab_20=Select Environment Variables

FavoritesDialog_1=Organize {0} Favorites
FavoritesDialog_2=Fa&vorites:
FavoritesDialog_3=Ad&d...
FavoritesDialog_4=Re&move
FavoritesDialog_5=U&p
FavoritesDialog_6=Do&wn
FavoritesDialog_7=Select &Launch Configurations:
FavoritesDialog_0=Add {0} Favorites
FavoritesDialog_8=Updating Favorites...

OrganizeFavoritesAction_0=Organize Fa&vorites...
PerspectiveManager_12=Confirm Perspective Switch
PerspectiveManager_13=This kind of launch is configured to open the {0} perspective when it suspends. Do you want to open this perspective now?
PerspectiveManager_15=This kind of launch is associated with the {0} perspective. Do you want to open this perspective now?
PerspectiveManager_suspend_description=This kind of launch is configured to open the {0} perspective when it suspends.\n\n{1}\n\nDo you want to open this perspective now?
PerspectiveManager_launch_description=This kind of launch is associated with the {0} perspective.\n\n{1}\n\nDo you want to open this perspective now?

DebugModePromptStatusHandler_0=Breakpoints in Workspace
DebugModePromptStatusHandler_1=There are breakpoints enabled in the workspace. Would you rather launch in debug mode?
SaveScopeResourcesHandler_2=Select resources to save:
SaveScopeResourcesHandler_3=Save and Launch
SaveScopeResourcesHandler_1=Always save &resources before launching
FilterLaunchConfigurationAction_0=Filter
FilterDropDownMenuCreator_0=Filter &Closed Projects
FilterDropDownMenuCreator_1=Filter &Deleted/Unavailable Projects
FilterDropDownMenuCreator_2=Filter Configuration &Types
FilterDropDownMenuCreator_3=Filtering &Preferences...
FilterDropDownMenuCreator_4=Apply Window &Working Set(s)
CollapseAllLaunchConfigurationAction_0=Collapse All
CollapseAllLaunchConfigurationAction_1=Collapses all expanded launch configurations.
CollapseAllLaunchConfigurationAction_2=This action collapses all of the launch configurations currently visible and expanded.
SelectLaunchOptionsDialog_3=Select Launch Mode
SelectLaunchOptionsDialog_4=&Select a supported mode combination:
SelectLaunchersDialog_0=Select Preferred Launcher
SelectLaunchersDialog_1=&Use configuration specific settings
SelectLaunchersDialog_2=This dialog allows you to specify which launcher to use when multiple launchers are available for a configuration and launch mode.
SelectLaunchersDialog_4=<a href="ws">Change Workspace Settings...</a>
SelectLaunchersDialog_5=Description
SelectLaunchersDialog_launchers=Launc&hers:
