###############################################################################
#  Copyright (c) 2004 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
#      Helen Hawkins   - iniital version
###############################################################################
pluginName = Cross Reference UI Plugin
providerName = Eclipse.org

XRefView.label=Cross References

ActionDefinition.show.xrefView=Show XRef
ActionDefinition.show.xrefView.description=Open the XRef for the editor input

ShowXRef.label=Show Cross References
ShowXRef.tooltip=Shows cross references for the Editor Input
ShowXRef.description=Shows the cross references for the editor input

XRefPreferencePage=Cross References

XRefActionSet.label=Cross References Navigation
XRefActionSet.description=Cross References Navigation

QuickXRef.label=&Quick Cross References

OpenXRef.label=Open &Cross References
