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

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=&Select buildfiles:
AddBuildFilesAction.3=Adding Buildfile(s)...
RemoveAllAction.Remove_All=Remove A&ll Buildfiles
RemoveProjectAction.Remove=Remo&ve Buildfile
RemoveProjectAction.Remove_2=Remove Selected Buildfile
RunTargetAction.Run_1=R&un
RunTargetAction.4=&Run Ant...
RunTargetAction.Run_Default=Run the Default Target of the Selected Buildfile
RunTargetAction.2=Launching Ant buildfile
RunTargetAction.3=No target found
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