###############################################################################
# Copyright (c) 2000, 2016 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
Two					= \u05e9\u05Ea\u05d9\u05d9\u05dd Two...
Three				= Three...
One_Two_Three		= \u05d0\u05d7\u05d3 One Two Three...
Multi_line			= \u05d4\u05d9!!! A multi line text widget...
Example_string		= \u05d4\u05d9!!! The quick brown fox jumps over the lazy dog.
Node_1				= \u05d0\u05d7\u05d3 Node 1...
Node_2				= Node 2...
Node_3				= Node 3...
Node_4				= Node 4...
Node_1_1			= Node 1.1...
Node_2_1			= \u05e6\u05d5\u05de\u05ea Node 2.1...
Node_3_1			= Node 3.1...
Node_2_2			= Node 2.2...
Node_2_2_1			= Node 2.2.1...
TableLine0_3		= \u05d4\u05d9\u05d5\u05dd - today...
TableLine1_3		= tomorrow...
ListData0_0			= Line \u05e9\u05d5\u05e8\u05d4 1...
ListData0_1			= Line 2...
ListData0_2			= \u05e9\u05d5\u05e8\u05d4 Line 3...
ListData0_3			= Line 4...
ListData0_4			= Line 5...
ListData0_5			= Line 6...
ListData0_6			= Line 7...
ListData0_7			= Line 8...
ListData0_8			= Longest Line In List...
ListData1_0			= \u05ea\u05e4\u05d5\u05d7\u05d9\u05dd Apples!!!
ListData1_1			= Oranges \u05ea\u05e4\u05d5\u05d6\u05d9\u05dd!!!
ListData1_2			= Bananas...
ListData1_3			= Grapefruit...
ListData1_4			= Peaches...
ListData1_5			= Kiwi...
ListData1_6			= Apricots...
ListData1_7			= Strawberries...
ListData1_8			= The Longest String...
DropDownData_0		= \u05ea\u05e4\u05d5\u05d7\u05d9\u05dd Apples!!!
DropDownData_1		= Oranges \u05ea\u05e4\u05d5\u05d6\u05d9\u05dd!!!
DropDownData_3		= Grapefruit...
DropDownData_4		= Peaches...
DropDownData_5		= Kiwi...
DropDownData_7		= Strawberries...
DropDownData_8		= The Longest String...
Wrap_Text			= \u05d4\u05d9!!! Jack and Jill went up the hill to fetch a pail of water, \
					  Jack fell down and broke his crown and Jill came tumbling after!
TabItem1_0			= Tab &0...
TabItem1_1			= \u05dc\u05e9\u05d5\u05e0\u05d9\u05ea - Tab &1...
TabItem1_2			= Tab &2...
CTabItem1_0			= CTabItem \u05d0\u05e4\u05e1 &0...
CTabItem1_1			= \u05d0\u05d7\u05d3 CTabItem &1...
CTabItem1_2			= \u05e9\u05ea\u05d9\u05d9\u05dd CTabItem &2 has a long name...
LinkText			=\u05d4\u05d9!!! Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt">SWT</A> homepage.
Item1_Text			= \u05db\u05e4\u05ea\u05d5\u05e8 - What is your favorite button?
Item2_Text			= What is your favorite icon - \u05e1\u05de\u05dc?
ToolTip_Title		= \u05e9' vs. \u05db' - Foxes vs. Dogs !!!
