###############################################################################
# Copyright (c) 2000, 2012 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# 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 build 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
