###############################################################################
# Copyright (c) 2000, 2007 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
#     dakshinamurthy.karra@gmail.com - bug 165371
###############################################################################

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

ExternalToolsBuildTab_1=&Build before launch
ExternalToolsBuildTab_2=The &entire workspace
ExternalToolsBuildTab_3=The &project containing the selected resource
ExternalToolsBuildTab_4=&Specific projects
ExternalToolsBuildTab_5=P&rojects...
ExternalToolsBuildTab_6=Include referenced pro&jects
ExternalToolsBuildTab_7=Select &Projects:
ExternalToolsBuildTab_8=Build
ExternalToolsBuildTab_9=No projects specified

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
