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

SearchForBuildFilesDialog_Search_for_Build_Files_1=Search for Buildfiles
SearchForBuildFilesDialog__Input=&Input a buildfile name (* = any string, ? = any character):
SearchForBuildFilesDialog_Build_name_cannot_be_empty_3=Build name cannot be empty
SearchForBuildFilesDialog__Search_4=&Search
SearchForBuildFilesDialog_Scope_5=Scope
SearchForBuildFilesDialog__Workspace_6=&Workspace
SearchForBuildFilesDialog_Wor_king_Set__7=Wor&king Set:
SearchForBuildFilesDialog__Choose____8=&Choose...
SearchForBuildFilesDialog_Include_errors=Include &buildfiles that contain errors
SearchForBuildFilesDialog_Must_select_a_working_set_10=Must select a working set
SearchForBuildFilesDialog_No_searchable=No searchable resources found in the selected working set
AntViewOpenWithMenu_Editor_failed=Editor failed to open for {0}
AntViewOpenWithMenu_Default_Editor_4=Default Editor
AddBuildFilesAction_0=Add Buildfiles
AddBuildFilesAction_1=&Add Buildfiles...
AddBuildFilesAction_2=Buildfile Selection
AddBuildFilesAction_3=Adding Buildfile(s)...
AddBuildFilesAction_4=&Choose the buildfiles to add:
AddBuildFilesAction_5=&Only show *.xml files
RemoveAllAction_Remove_All=Remove A&ll Buildfiles
RemoveAllAction_0=Remove All from View
RemoveAllAction_1=Are you sure you want to remove all buildfiles from the view?
RemoveProjectAction_Remove=Remo&ve Buildfile
RemoveProjectAction_Remove_2=Remove Selected Buildfile
RunTargetAction_Run_1=R&un
RunTargetAction_3=Run the Default Target of the Selected Buildfile
RunTargetAction_4=Run the Selected Target
RunTargetAction_2=Launching Ant buildfile
RunTargetAction_0=Run the Owning Target of the Selected Task
SearchForBuildFilesAction_Search_1=Search
SearchForBuildFilesAction_Add_build_files_with_search_2=Add Buildfiles with Search
SearchForBuildFilesAction_Processing_search_results_3=Processing search results...
SearchForBuildFilesAction_Adding__0__4=Adding {0}
RefreshBuildFilesAction_Refresh_Buildfiles_1=Re&fresh Buildfiles
RefreshBuildFilesAction_Refreshing_buildfiles_3=Refreshing buildfiles...
RefreshBuildFilesAction_Refreshing__0__4=Refreshing {0}
FilterInternalTargetsAction_0=Hide Internal Targets
