###############################################################################
# Copyright (c) 2000, 2017 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Anton Kosyakov (Itemis AG) - Bug 438621 - [step filtering] Provide an extension point to enhance methods step filtering.
#     Axel Richard (Obeo) - Bug 41353 - Launch configurations prototypes
###############################################################################

Breakpoint_no_associated_marker=Breakpoint does not have an associated marker.
BreakpointManager_Missing_breakpoint_definition=Missing breakpoint definition for marker type {0}
BreakpointManager_Missing_model_identifier=Breakpoint missing debug model identifier
DebugEvent_illegal_detail=detail is not one of the allowed constants, see IDebugEventConstants
DebugEvent_illegal_kind=kind is not one of the allowed constants, see IDebugEventConstants
DebugPlugin_Eclipse_runtime_does_not_support_working_directory_2=Eclipse runtime does not support working directory
DebugPlugin_1=Debug Event Dispatch
DebugPlugin_0=Exception occurred executing command line.
DebugPlugin_2=Internal message logged from Debug Core: {0}
DebugPlugin_3=Error logged from Debug Core: 
DebugPlugin_4=Invalid process factory extension contributed by {0}; id: {1}
DebugPlugin_5=Invalid status handler extension: {0}
DebugPlugin_6=An exception occurred in asynchronous runnable.
DebugPlugin_7=An exception occurred while filtering debug events.
DebugPlugin_8=An exception occurred while dispatching debug events.
EnvironmentVariableResolver_0=Environment variable not specified
GroupLaunchConfigurationDelegate_waiting=Waiting for ''{0}'' on the console of ''{1}''.
GroupLaunchConfigurationDelegate_Delay=Delay
GroupLaunchConfigurationDelegate_Delaying=Delaying next launch by {0} seconds
GroupLaunchConfigurationDelegate_Launching=Launching ''{0}''
GroupLaunchConfigurationDelegate_mode_debug=debug
GroupLaunchConfigurationDelegate_mode_inherit=inherit
GroupLaunchConfigurationDelegate_mode_profile=profile
GroupLaunchConfigurationDelegate_mode_run=run
GroupLaunchConfigurationDelegate_None=None
GroupLaunchConfigurationDelegate_Wait_until_terminated=Wait until terminated
GroupLaunchConfigurationDelegate_Waiting_for_termination=Waiting for termination of ''{0}''
GroupLaunchElement_inherit_launch_mode_label=Inherit
GroupLaunchElement_outputRegexp=Wait for console output (regexp)
SystemPropertyResolver_0=System property not specified
Launch_terminate_failed=Terminate failed
LaunchConfiguration_Failed_to_delete_launch_configuration__1=Failed to delete launch configuration.
LaunchConfiguration_9=Preparing launch delegate...
LaunchConfiguration_8=Performing pre-launch check...
LaunchConfiguration_7=Build before launch - 
LaunchConfiguration_6=Performing required build...
LaunchConfiguration_5=Performing incremental workspace build...
LaunchConfiguration_4=Performing final launch validation...
LaunchConfiguration_3=Initializing source locator...
LaunchConfiguration_2=Launching delegate...
LaunchConfiguration_0=Launch configuration has corrupt resource mapping attributes
LaunchConfiguration_11=No launch delegate found - launch canceled
LaunchConfiguration_13=Duplicate launcher detected - launch canceled
LaunchConfiguration_14=Incompatible launch mode: expecting {0} instead of {1}
LaunchConfiguration_16=Exception occurred creating launch configuration memento
LaunchConfiguration_17=Exception occurred parsing memento
LaunchConfiguration_18=Invalid launch configuration memento: missing path attribute
LaunchConfiguration_19=Invalid launch configuration memento: missing local attribute
LaunchConfigurationDelegate_6=Searching for errors
LaunchConfigurationDelegate_7=Searching for errors in {0}
LaunchConfigurationDelegate_scoped_incremental_build=Scoped incremental build before launch...
LaunchConfigurationInfo_Attribute__0__is_not_of_type_boolean__3=Attribute {0} is not of type boolean.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_int__2=Attribute {0} is not of type int.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_lang_String__1=Attribute {0} is not of type java.lang.String.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_util_List__1=Attribute {0} is not of type java.util.List.
LaunchConfigurationInfo_Attribute__0__is_not_of_type_java_util_Map__1=Attribute {0} is not of type java.util.Map.
LaunchConfigurationInfo_Invalid_launch_configuration_XML__10=Invalid launch configuration XML.
LaunchConfigurationInfo_missing_type=Launch configuration type id \"{0}\" does not exist.\nPossible causes:\n\tMissing specification of a launch type (missing plug-in)\n\tIncorrect launch configuration XML
LaunchConfigurationInfo_36=A null key has been specified for an attribute in this launch configuration
LaunchConfigurationInfo_35=Attribute {0} is not of type java.util.Set.
LaunchConfigurationWorkingCopy__0__occurred_generating_launch_configuration_XML__1={0} occurred generating launch configuration XML.
LaunchConfigurationWorkingCopy_Specified_container_for_launch_configuration_does_not_exist_2=Specified container for launch configuration does not exist
LaunchConfigurationWorkingCopy_5=Unable to save launch configuration.
LaunchConfigurationWorkingCopy_0=Saving launch configuration [{0}]:
LaunchConfigurationWorkingCopy_1=Writing local file
LaunchConfigurationWorkingCopy_2=Creating new file {0}.launch in workspace
LaunchConfigurationWorkingCopy_3=Setting contents of {0}.launch
LaunchConfigurationWorkingCopy_4=Unable to obtain storage to write launch configuration
LaunchConfigurationWorkingCopy_6=The launch configuration must be a prototype
LaunchConfigurationWorkingCopy_7=Unable to set a launch configuration prototype on a launch configuration working copy
LaunchConfigurationWorkingCopy_8=Writing local file
LaunchManager__0__occurred_while_reading_launch_configuration_file__1___1={0} occurred while reading launch configuration file: {1}.
LaunchManager_Invalid_launch_configuration_index__18=Invalid launch configuration index.
LaunchManager_does_not_exist=Launch configuration {0} at {1} does not exist.
LaunchManager_does_not_exist_no_store_found=Launch configuration {0} does not exist
LaunchManager_Source_locator_does_not_exist___0__13=Source locator does not exist: {0}
LaunchManager_26=Import failed
LaunchManager_27=Failed to import {0}.
LaunchManager_28=Importing {0}
LaunchManager_29=Importing launch configurations

# This describes the name of a single launch configuration
# {0} is the base name of the configuration
# {1} is the numerical modifier for the name
# For example if we have a config named 'test' and we created a new one from test
# we would get 'test (1)', where test is the basename, and 1 is the numerical modifier
LaunchManager_31={0} ({1})
LaunchManager_invalid_config_name=''{0}'' is an invalid configuration name
LaunchManager_invalid_config_name_char=''{0}'' is an invalid character in a configuration name
LaunchDelegate_0=No description provided.
LaunchDelegate_1={0} Launcher
LaunchDelegate_2={0} launcher
LaunchDelegate_3=Launch delegate for {0} does not implement required interface ILaunchConfigurationDelegate.
LaunchMode_0={0} As
LaunchMode_1=Required attribute {0} missing for launchMode extension.
LogicalStructureType_0=<Missing Description>
LogicalStructureType_1=Required attribute {0} missing for logicalStructureType extension.
LogicalStructureProvider_0=Required attribute modelIdentifier missing for logicalStructureType extension.
LogicalStructureProvider_1=Required attribute class missing for logicalStructureType extension.
ProcessMonitorJob_0=Process monitor
RuntimeProcess_terminate_failed=Terminate failed
RuntimeProcess_Exit_value_not_available_until_process_terminates__1=Exit value not available until process terminates.
LaunchConfigurationType_2=Local configuration cannot be nested in a directory.
LaunchConfigurationType_7=Launch mode not supported: {0}
WatchExpression_0=(Watch expressions not supported)
NullStreamsProxy_0=Null Stream Monitor
RefreshingResources=Refresh resources...
RefreshingResourcesError=Exception(s) occurred during refresh.
RefreshUtil_0=Unable to restore resource memento: {0}
RefreshUtil_1=Refresh scope refers to non-existent resource {0}
StepFilter_0=Required attribute modelIdentifier missing for stepFilter extension.
StepFilter_1=Required attribute class missing for stepFilter extension.
