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

# package: org.eclipse.ui.views.framelist


# ==============================================================================
# FrameList
# ==============================================================================
Back.text = &Back
Back.toolTip = Back
Back.toolTipOneArg = Back to {0}

Forward.text = &Forward
Forward.toolTip = Forward
Forward.toolTipOneArg = Forward to {0}

GoInto.text = Go &Into
GoInto.toolTip = Go Into

Up.text = &Up One Level
Up.toolTip = Up
Up.toolTipOneArg = Up to {0}