###############################################################################
# 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
###############################################################################

ExternalToolsMainTab__Location___2=&Location:
ExternalToolsMainTab__Browse_Workspace____3=Browse Works&pace...
ExternalToolsMainTab_Brows_e_File_System____4=Brows&e File System...
ExternalToolsMainTab_Working__Directory__5=Working &Directory:
ExternalToolsMainTab_Browse_Wor_kspace____6=Browse Wor&kspace...
ExternalToolsMainTab_Browse_F_ile_System____7=Browse File Syste&m...
ExternalToolsMainTab_Error_reading_configuration_10=Error reading configuration
ExternalToolsMainTab__Main_17=Main
ExternalToolsMainTab_External_tool_location_cannot_be_empty_18=External tool location cannot be empty
ExternalToolsMainTab_External_tool_location_does_not_exist_19=External tool location does not exist
ExternalToolsMainTab_External_tool_location_specified_is_not_a_file_20=External tool location specified is not a file
ExternalToolsMainTab_External_tool_working_directory_does_not_exist_or_is_invalid_21=External tool working directory does not exist or is invalid
ExternalToolsMainTab_Select_a_resource_22=Select a resource:
ExternalToolsMainTab_23=Select a working directory:
ExternalToolsMainTab__Arguments___1=&Arguments:
ExternalToolsMainTab_Varia_bles____2=Variable&s...
ExternalToolsMainTab_3=Note: Enclose an argument containing spaces using double-quotes (\").
ExternalToolsMainTab_Error_reading_configuration_7=Error reading configuration
ExternalToolsMainTab_Not_a_directory=The specified location is not a directory
ExternalToolsMainTab_30=Please specify the location of the external tool you would like to configure.
ExternalToolsMainTab_31=Var&iables...
ExternalToolsMainTab_32=Varia&bles...

ExternalToolsUtil_Location_not_specified_by__0__1=Location not specified by {0}
ExternalToolsUtil_invalidLocation__0_ = The file does not exist for the external tool named {0}.
ExternalToolsUtil_invalidDirectory__0_ = The working directory {0} does not exist for the external tool named {1}.

ExternalToolsBuilderTab_Run_this_builder_for__1=Run the builder:
ExternalToolsBuilderTab__Full_builds_2=A&fter a \"Clean\"
ExternalToolsBuilderTab_Full=Runs on the first build that occurs after a clean.
ExternalToolsBuilderTab__Incremental_builds_4=&During manual builds
ExternalToolsBuilderTab_Inc=Runs whenever the user invokes a build (but not for auto-build).
ExternalToolsBuilderTab__Auto_builds__Not_recommended__6=During a&uto builds
ExternalToolsBuilderTab_Auto=Runs whenever a resource in the workspace is modified if autobuilding is enabled. Enabling this option should be paired with a specifying a resource working set.
ExternalToolsBuilderTab_Build_Options_9=&Build Options
ExternalToolsBuilderTab_workingSet_label=Specify working set of &relevant resources
ExternalToolsBuilderTab_workingSet_tooltip=The working set of resources that if changed from a manual or auto build will trigger the external tool builder
ExternalToolsBuilderTab_buildKindError=At least one type of build kind must be selected
ExternalToolsBuilderTab_14=Launch in bac&kground
ExternalToolsBuilderTab_13=&Specify Resources...
ExternalToolsBuilderTab_16=Must select resources in working set.
ExternalToolsBuilderTab_15=workingSet
ExternalToolsBuilderTab_17=Standard Input and Output
ExternalToolsBuilderTab_18=Allocate &Console (necessary for input)
ExternalToolsBuilderTab_19=Fi&le
ExternalToolsBuilderTab_0=During a "&Clean"
ExternalToolsBuilderTab_1=Runs when a "clean" has been initiated
ExternalToolsBuilderTab_2=Note: Not applied for the builds during or after a \"Clean\"
ExternalToolsBuilderTab_20=Browse Worksp&ace...
ExternalToolsBuilderTab_21=Browse File Syste&m...
ExternalToolsBuilderTab_22=Varia&bles...
ExternalToolsBuilderTab_23=A&ppend
ExternalToolsBuilderTab_24=Select a Resource
ExternalToolsBuilderTab_25=Select a resource to redirect output to:
ExternalToolsBuilderTab_26=No file specified for process output
