###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

ExternalToolsMainTab.&Location___2=&Location: 
ExternalToolsMainTab.&Browse_Workspace..._3=&Browse Workspace...
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 F&ile System...
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.&Select_a_directory__23=&Select a working directory:
ExternalToolsMainTab.&Arguments___1=&Arguments: 
ExternalToolsMainTab.Varia&bles..._2=Variable&s...
ExternalToolsMainTab.Note__Enclose_an_argument_containing_spaces_using_double-quotes_(__)._Not_applicable_for_variables._3=Note: Enclose an argument containing spaces using double-quotes (\").\nNot applicable for variables.
ExternalToolsMainTab.Run_tool_in_bac&kground_4=&Run tool in background
ExternalToolsMainTab.Error_reading_configuration_7=Error reading configuration
ExternalToolsMainTab.Invalid_Expected_closing_}=Invalid variable format. Expected closing }
ExternalToolsMainTab.No_variable_specified=Invalid variable format. No variable specified
ExternalToolsMainTab.Unknown_variable=Unknown variable: {0}
ExternalToolsMainTab.Not_a_directory=The specified location is not a directory

ExternalToolsUtil.Location_not_specified_by_{0}_1=Location not specified by {0}
ExternalToolsUtil.Exception(s)_occurred_during_refresh._2=Exception(s) occurred during refresh.
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}.
ExternalToolsUtil.refreshResources = Refresh resources...
ExternalToolsUtil.invalidRefreshVarFormat = Invalid refresh scope variable format for the external tool named {0}.
ExternalToolsUtil.noRefreshVarNamed = Could not find refresh scope variable called ''{1}'' for the external tool named {0}.
ExternalToolsUtil.Could_not_resolve_an_argument._1=Could not resolve an argument.
ExternalToolsUtil.Could_not_resolve_location._3=Could not resolve location.
ExternalToolsUtil.Could_not_resolve_working_directory._4=Could not resolve working directory.

ExternalToolsBuilderTab.Run_this_builder_for__1=Run for:
ExternalToolsBuilderTab.&Full_builds_2=&Full builds
ExternalToolsBuilderTab.Full=Runs whenever a full build is invoked. The \"Rebuild All\" action causes a full build.
ExternalToolsBuilderTab.&Incremental_builds_4=&Incremental builds
ExternalToolsBuilderTab.Inc=Runs whenever an incremental build is invoked. The \"Build All\" action causes an incremental build.
ExternalToolsBuilderTab.&Auto_builds_(Not_recommended)_6=&Auto 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.Working_Sets_1=Working Set
ExternalToolsBuilderTab.workingSet_label=Specify working set of &relevant resources (not applied to full builds)
ExternalToolsBuilderTab.workingSet_tooltip=The working set of resources that if changed from an incremental or auto build will trigger the external tool builder
ExternalToolsBuilderTab.buildKindError=At least one type of build kind must be selected
