###############################################################################
# Copyright (c) 2000, 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 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=Browse &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 ({0})
CommonTab_3=Oth&er
CommonTab_4=Standard Input and Output
CommonTab_5=&Allocate Console (necessary for input)
CommonTab_6=Fi&le:
CommonTab_7=Browse File Syste&m...
CommonTab_8=No file specified for process output
CommonTab_9=Variable&s...

CompileErrorPromptStatusHandler_0=Errors in Project{0}
CompileErrorPromptStatusHandler_1=Errors exist in a required project. Continue launch?
CompileErrorPromptStatusHandler_2=Errors exist in required project{0}: {1}.\nContinue launch?
CompileErrorProjectPromptStatusHandler_0=Co&ntinue
CompileErrorProjectPromptStatusHandler_1=&Always launch without asking

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 launch configuration name {1}
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_7=Configure launch configuration filters on the <a>Launch Configurations</a> preference page.
LaunchConfigurationTabGroupViewer_8=- Press the 'Filter' button to configure filtering options.
LaunchConfigurationDialog_Create__manage__and_run_launch_configurations_8=Create, manage, and run configurations
LaunchConfigurationDialog_Dele_te_14=De&lete
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=Launch configuration already exists with this name
LaunchConfigurationDialog_Launch_Configuration_Error_46=Launch Configuration Error
LaunchConfigurationDialog_Launch_Configurations_18=Launch Configurations
LaunchConfigurationDialog_Name_required_for_launch_configuration_11=Name required for launch configuration
LaunchConfigurationDialog_Ne_w_13=Ne&w
LaunchConfigurationDialog_No_33=No
LaunchConfigurationDialog_Ready_to_launch_2=Ready to launch
LaunchConfigurationDialog_Save_changes__31=Save changes?
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
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
LaunchConfigurationDialog_Launch_Con_figurations__1=Con&figurations:
LaunchConfigurationsDialog_Error_1=Error
LaunchConfigurationsDialog_Warning_2=Warning
LaunchConfigurationsDialog_Information_3=Information
LaunchConfigurationsDialog_45=Perspective settings for {0} have unsaved changes. Do you wish to save them?
LaunchConfigurationsDialog_0=New launch configuration
LaunchConfigurationsDialog_1=Delete selected launch configuration(s)
LaunchConfigurationsDialog_2=&Filter
LaunchConfigurationsDialog_4=Filter launch configurations...
LaunchConfigurationsDialog_5=Duplicates the currently selected launch configuration
LaunchConfigurationsDialog_c_ancel=Cancel
LaunchConfigurationsDialog_7=All launch configuration types are currently filtered
LaunchConfigurationManager_0=Remove Terminated Launches

LaunchConfigurationPresentationManager_Launch_configuration_tab_group_extension__0__does_not_specify_launch_configuration_type_1=Launch configuration tab group extension {0} does not specify launch configuration type
LaunchConfigurationPresentationManager_Launch_configuration_tab_group_extension__0__refers_to_non_existant_launch_configuration_type__1__2=Launch configuration tab group extension {0} refers to non-existent launch configuration type {1}
LaunchConfigurationPresentationManager_No_tab_group_defined_for_launch_configuration_type__0__3=No tab group defined for launch configuration type {0}

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}
PerspectiveManager_9=Exception occurred while generating launch perspectives preference XML

LaunchShortcutExtension_Error_4=Error
LaunchShortcutExtension_Unable_to_use_launch_shortcut_5=Unable to use launch shortcut

LaunchConfigurationPropertiesDialog_Edit_launch_configuration_properties_1=Edit launch configuration properties
LaunchConfigurationPropertiesDialog_Properties_for__0__2=Properties for {0}

LaunchConfigurationDialog_Modify_attributes_and_launch__1=Modify attributes 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
DeleteAssociatedLaunchConfigurationsDialog_0=Select &launch configurations to delete:
DeleteAssociatedLaunchConfigurationsDialog_1=&Select All
DeleteAssociatedLaunchConfigurationsDialog_2=&Deselect All
DeleteAssociatedLaunchConfigurationsDialog_3=&Always delete associated launch configurations
DeleteLaunchConfigurations_0=The projects associated with the following launch configurations\nhave been deleted. Select launch configurations to delete.
DeleteLaunchConfigurations_1=Delete Launch Configurations

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=&Remove
EnvironmentTab_Environment_7=Environment
EnvironmentTab_8=&Name:
EnvironmentTab_9=&Value:
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.
