###############################################################################
# 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 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
###############################################################################
error.CouldNotLoadResources = Unable to load resources : {0}

ToolItem.text = ToolItem {0}
ToolItem.tooltip = Tooltip for {0}. Try F1 on me.
ToolItem.help = Help text for {0}.

TableItem.text = TableItem {0}
TableItem.tooltip = Tooltip for {0}. Try F1 on me.
TableItem.help = Help text for {0}.

TreeItem.text = TreeItem {0}
TreeItem.tooltip = Tooltip for {0}. Try F1 on me.
TreeItem.help = Help text for {0}.

Hello.text = Hello
Hello.tooltip = Greetings!
