###############################################################################
#  Copyright (c) 2000, 2014 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.
###############################################################################

pluginName=Debug Core
providerName=Eclipse.org
launcherExtensionPointName=Launcher
breakpointExtensionPointName=Breakpoint
launchConfigurationTypeNameExtensionPointName=Launch Configuration Type
launchConfigurationComparatorsExtensionPointName=Launch Configuration Comparators
statusHandlerExtensionPointName=Status Handler
sourceLocatorsExtensionPointName=Source Locator
launchModesExtensionPointName=Launch Modes
launchDelegatesExtensionPointName=Launch Delegates
breakpointImportParticipantsExtensionPoint.name = Breakpoint Import Participant
watchExpressionDelegatesName= Watch Expression Delegates
processFactoriesExtensionPointName=Process Factories
logicalStructureTypesExtensionPointName=Logical Structure Types
logicalStructureProvidersExtensionPointName=Logical Structure Providers
stepFiltersExtensionPointName=Step Filters
sourceContainerTypesName = Source Container Types
sourcePathComputersName = Source Path Computers

run=&Run
debug=&Debug
profile=&Profile
runAs.label=&Run As
debugAs.label=&Debug As
profileAs.label=&Profile As

env_var.description=Returns the value of an environment variable. An environment variable name must be specified as an argument.
system_var.description=Returns the value of an Eclipse system variable. A variable name must be specified as an argument - one of ARCH, ECLIPSE_HOME, NL, OS, or WS.
system_property.description=Returns the value of a system property from the Eclipse runtime. A system property name must be specified as an argument.

containerName.archive = Archive
containerDescription.archive = A jar or zip in the workspace containing source files
containerName.externalArchive = External Archive
containerDescription.externalArchive = A jar or zip in the local file system containing source files
containerName.project = Project
containerDescription.project = A project in the workspace
containerName.folder = Workspace Folder
containerDescription.folder = A folder in the workspace
containerName.directory = File System Directory
containerDescription.directory = A directory in the local file system
containerName.workspace = Workspace
containerDescription.workspace = All projects in the workspace
containerName.default = Default
containerDescription.default = Default source lookup path

workspace_loc.description=Returns the absolute file system path of the workspace root. When an argument is specified, the absolute file system path of the resource identified by a workspace relative path is returned.
container_loc.description=Returns the absolute file system path of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
container_path.description=Returns the workspace relative path of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
container_name.description=Returns the name of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_loc.description=Returns the absolute file system path of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_path.description=Returns the workspace relative path of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_name.description=Returns the name of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_loc.description=Returns the absolute file system path of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_path.description=Returns the workspace relative path of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_name.description=Returns the name of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
current_date.description=Returns the current system time formatted as yyyyMMdd_HHmm. An optional argument can be used to provide alternative formatting. The argument must be a valid pattern for java.util.SimpleDateFormat.

LineBreakpoint.name = Line Breakpoint
Breakpoint.name = Breakpoint

GroupLaunch.name=Launch Group
GroupLaunch.description=Launch several other configurations sequentially
