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

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
