###############################################################################
# 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
#     John-Mason P. Shackelford - bug 40255
###############################################################################

OpenDeclarationAction.0=&Open Declaration
OpenDeclarationAction.1=Open an editor on the referenced element
OpenExternalDocAction.0=Open External Ant Documentation
OpenExternalDocAction.1=Open E&xternal Documentation
OpenExternalDocAction.2=Opens an external browser on the referenced Ant element

TogglePresentation.label=Show Source of Selected Element Only
TogglePresentation.tooltip=Show Source of Selected Element Only

ToggleMarkOccurrencesAction.label= Toggle Ant Mark Occurrences
ToggleMarkOccurrencesAction.tooltip= Toggle Ant Mark Occurrences

ToggleAutoReconcileAction.label= Toggle Auto Reconcile
ToggleAutoReconcileAction.tooltip= Toggle Auto reconcile

Projection.Toggle.label= &Enable Folding
Projection.Toggle.tooltip= Toggles Folding
Projection.Toggle.description= Toggles folding for the current editor

Projection.ExpandAll.label= Expand &All
Projection.ExpandAll.tooltip= Expands All Folded Regions
Projection.ExpandAll.description= Expands any folded regions in the current editor
EnableDisableBreakpointRulerAction.0=&Enable Breakpoint
EnableDisableBreakpointRulerAction.1=Enabling/Disabling Breakpoints
EnableDisableBreakpointRulerAction.2=Exception(s) occurred enabling/disabling the breakpoint
EnableDisableBreakpointRulerAction.3=&Disable Breakpoint
EnableDisableBreakpointRulerAction.4=&Enable Breakpoint
ManageBreakpointRulerAction.0=Toggle &Breakpoint
ManageBreakpointRulerAction.1=Cannot add breakpoint

RunToLineAdapter.0=Empty editor
RunToLineAdapter.1=Missing document
RunToLineAdapter.2=No file could be found
RunToLineAdapter.3=Unable to locate debug target
RenameInFileAction.0=Re&name In File
RenameInFileAction.1=Renames all references within the same buildfile
RenameInFileAction.2=Renames all references
