###############################################################################
# Copyright (c) 2000, 2004 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
#     John-Mason P. Shackelford (john-mason.shackelford@pearson.com) - bug 53547
###############################################################################

AntEditorContentOutlinePage.Open_With_1=Open With

FilterInternalTargetsAction.0=Hide Internal Targets
FilterImportedElementsAction.0=Hide Imported Elements
FilterPropertiesAction.0=Hide Properties

FilterTopLevelAction.0=Hide Top Level Elements

ToggleSortAntOutlineAction.0=Sort

ToggleLinkWithEditorAction.0=Lin&k With Editor
ToggleLinkWithEditorAction.1=Link with Editor
ToggleLinkWithEditorAction.2=Link with active editor