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

AddVariableStringAction_1=Add Varia&ble...
AddVariableStringAction_2=&Classpath Entry Value:
AddVariableStringAction_3=&Variables...
AddVariableStringAction_4=Add Variable Classpath Entry

AntLaunchShortcut_Unable=Unable to find an Ant file to run.
AntLaunchShortcut_2=An exception occurred while creating a default Ant launch configuration for {0}
AntLaunchShortcut_3=An exception occurred while retrieving Ant launch configurations.
AntLaunchShortcut_4=Ant Configuration Selection
AntLaunchShortcut_5=&Choose an Ant configuration to run:
AntLaunchShortcut_Error_7=Error
AntLaunchShortcut_Build_Failed_2=Build Failed
AntLaunchShortcut_Exception_launching=An exception occurred while launching {0}

AntPropertiesTab__Properties__6=&Properties:
AntPropertiesTab_Property_f_iles__7=P&roperty files:
AntPropertiesTab_P_roperties_8=Properties
AntPropertiesTab_Error_reading_configuration_9=Error reading configuration
AntPropertiesTab_6=Use &global properties as specified in the Ant runtime preferences

AntJRETab_2=Run in the same &JRE as the workspace
AntJRETab_3=Se&parate JRE:

AntBuilderTargetsTab_0=<Builder is not set to run for this build kind>
AntBuilderTargetsTab_1=After a "Clean":
AntBuilderTargetsTab_2=&Set Targets...
AntBuilderTargetsTab_3=Manual Build:
AntBuilderTargetsTab_4=Set &Targets...
AntBuilderTargetsTab_5=Auto Build:
AntBuilderTargetsTab_6=Set T&argets...
AntBuilderTargetsTab_7=During a "Clean":
AntBuilderTargetsTab_8=Set Tar&gets...
AntBuilderTargetsTab_10=<default target selected>

AntMainTab__Select_a_build_file__1=&Select a buildfile:
AntMainTab_3=Base Direct&ory:
AntMainTab_6=Buildfi&le:
AntMainTab_0=Set an Input &handler
AntMainTab_1=Error reading configuration

AntTargetsTab_Check_targets_to_e_xecute__1=Check targets to e&xecute:
AntTargetsTab_0_out_of_0_selected_2=0 out of 0 selected
AntTargetsTab_Target_execution_order__3=Target execution order:
AntTargetsTab__Order____4=&Order...
AntTargetsTab_Name_5=Name
AntTargetsTab_Description_6=Description
AntTargetsTab__0__out_of__1__selected_7={0} out of {1} selected
AntTargetsTab_Tar_gets_14=Targets
AntTargetsTab_Error_reading_configuration_12=Error reading configuration
AntTargetsTab_12=&Hide internal targets not selected for execution
AntTargetsTab_13={0} out of {1} selected ({2} internal target(s) hidden)
AntTargetsTab_14=&Sort targets
AntTargetsTab_15=Buildfile does not exist
AntTargetsTab_16=Buildfile specified is not a file
AntTargetsTab_17=Target selection is not possible as buildfile location contains variable(s) that cannot be resolved until runtime.
AntTargetsTab_0=Buildfile contains errors/problems. Check syntax and classpath
AntTargetsTab_1=No targets could be determined for the buildfile
AntClasspathTab_0=Add F&olders...

EditAntHomeEntryAction_1=Ant &Home...

TargetOrderDialog_Order_Targets_1=Order Targets
TargetOrderDialog__Specify_target_execution_order__2=&Specify target execution order:
TargetOrderDialog__Up_3=&Up
TargetOrderDialog__Down_4=&Down

AntEnvironmentTab_0=An environment can only be used when running in a separate JRE.\nThis setting can be configured on the JRE tab.
SetTargetsDialog_0=Set Targets

AntWorkingDirectoryBlock_0=Exception occurred reading configuration: {0}
