###############################################################################
# Copyright (c) 2000, 2019 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
###############################################################################
error.CouldNotLoadResources = Unable to load resources
window.title = SWT Controls
custom.window.title = SWT Custom Controls

Text_Buttons		= Text Buttons
Size 				= Size
Alignment			= Alignment
Left				= Left
Right				= Right
Up					= Up
Down				= Down
Center				= Center
One					= One
Two					= Two
Three				= Three
Image_Buttons		= Image Buttons
Image_Text_Buttons	= Image and Text Buttons
Control_Example		= Control Example
Parameters			= Parameters
Other				= Other
Enabled				= Enabled
Visible				= Visible
BackgroundColor		= Background Color
BackgroundImage		= Background Image
PopupMenu			= Popup Menu
Preferred 			= Preferred
Styles	 			= Styles
Menu_Styles	 		= Menu Styles
MenuItem_Styles	 	= MenuItem Styles
Background_Mode		= Background Mode on Parent
Listeners			= Listeners
Select_Listeners	= Select Listeners
Listen				= Listen
UntypedEvents		= Untyped Events
Edit_Event			= Edit Event
Edit_Event_Fields	= On {0}, return the following:
Returning			= <- Returning:
Clear				= Clear
Set_Get				= Set/Get API
Parameter_Info		= {0}   e.g. {1}
Info_int			= 4
Info_intA			= 0,1,2
Info_long			= 4
Info_longA			= 0,1,2
Info_char			= c
Info_charA			= a,b,c
Info_boolean		= true
Info_booleanA		= true,true,false
Info_String			= hello
Info_StringA		= hello,there
Info_Point			= 0,0
Info_Rectangle		= 0,0,20,10
Info_TabItem		= Tab 0
Info_TabItemA		= Tab 0,Tab 2
Info_TableItem		= Index:2
Info_TableItemA		= Index:2,Index:4
Info_TreeItem		= Node 1
Info_TreeItemA		= Node 1,Node 3
Select_All			= Select All
Deselect_All		= Deselect All
OK					= OK
FillDamage			= Fill Damaged Area With Color
Title_Text			= Title Text
Text_Labels			= Text Labels
Image_Labels		= Image Labels
Custom_Labels		= Custom Labels
Custom_Combo		= Custom Combo
One_Two_Three		= One Two Three
Text_ToolBar 		= Text ToolBar
Image_ToolBar 		= Image ToolBar
ImageText_ToolBar	= Image and Text ToolBar
Maximum				= Maximum
Minimum				= Minimum
Selection			= Selection
Increment			= Increment
Page_Increment		= Page Increment
Thumb				= Thumb
Digits				= Digits
Tree_With_Images	= Tree With Images
Dialog_Type			= Dialog Type
Create_Dialog		= Create Dialog
Button_Styles		= MessageBox Button Styles
Icon_Styles			= MessageBox Icon Styles
Modal_Styles		= Modal Styles
File_Dialog_Styles	= FileDialog Styles
Item_Styles			= Item Styles
Dialog_Result		= Dialog Result
Use_Previous_Result = Use Previous Result
ColorDialog			= ColorDialog
DirectoryDialog		= DirectoryDialog
FileDialog			= FileDialog
FontDialog			= FontDialog
PrintDialog			= PrintDialog
MessageBox			= MessageBox
Multi_line			= A multi line text widget.
Example_string		= The quick brown fox jumps over the lazy dog.
Header_Visible		= Header Visible
Sort_Indicator		= Sort Indicator
Header_Images		= Header Images
Sub_Images			= Sub Images
Lines_Visible		= Lines Visible
Moveable_Columns	= Moveable Columns
Resizable_Columns	= Resizable Columns
Multiple_Columns	= Multiple Columns
Locked				= Locked
Combo_child			= Combo Child
Node_1				= Node 1
Node_2				= Node 2
Node_3				= Node 3
Node_4				= Node 4
Node_1_1			= Node 1.1
Node_2_1			= Node 2.1
Node_3_1			= Node 3.1
Node_2_2			= Node 2.2
Node_2_2_1			= Node 2.2.1
Parent				= Parent
No_Parent			= No Parent
Decoration_Styles	= Decoration Styles
Create_Shell		= Create Shell
Close_All_Shells	= Close All Shells
Push				= Push
Radio				= Radio
Check				= Check
Cascade				= Cascade
Drop_Down			= Drop Down
Images_failed		= Warning: Failed to load images
Index				= Index:
Title				= Title:
Close				= Close
Button				= Button
FullScreen			= Full Screen
Result				= Result: {0}
FilterName_0		= Text Files (*.txt)
FilterName_1		= Batch Files (*.bat)
FilterName_2		= Doc Files (*.doc, *.rtf)
FilterName_3		= All Files (*)
TableTitle_0		= Name
TableTitle_1		= Type
TableTitle_2		= Size
TableTitle_3		= Modified
TableLine0_0		= <empty>
TableLine0_1		= classes
TableLine0_2		= 0
TableLine0_3		= today
TableLine1_0		= <empty>
TableLine1_1		= databases
TableLine1_2		= 2556
TableLine1_3		= tomorrow
TableLine2_0		= <empty>
TableLine2_1		= images
TableLine2_2		= 91571
TableLine2_3		= yesterday
ListData0_0			= Line 1
ListData0_1			= Line 2
ListData0_2			= 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			= Apples
ListData1_1			= Oranges
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		= Apples
DropDownData_1		= Oranges
DropDownData_2		=
DropDownData_3		= Grapefruit
DropDownData_4		= Peaches
DropDownData_5		= Kiwi
DropDownData_6		=
DropDownData_7		= Strawberries
DropDownData_8		= The Longest String
Colors 				= Colors and Font
Change				= &Change...
Defaults			= &Defaults
Foreground_Color	= Foreground Color
Background_Color	= Background Color
Font				= Font
Item_Foreground_Color	= Item 0 Foreground Color
Item_Background_Color	= Item 0 Background Color
Item_Font				= Item 0 Font
Cell_Foreground_Color	= Item 0 Col 1 Foreground Color
Cell_Background_Color	= Item 0 Col 1 Background Color
Cell_Font				= Item 0 Col 1 Font
Wrap_Text			= 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!
Foreground_Style	= Foreground
Background_Style 	= Background
StyledText_Styles	= Text Styles
StyledText_Style_Instructions	= Select text, then style.
Bold				= Bold
Italic				= Italic
Underline			= Underline
Strikeout			= Strikeout
Fill_X				= Horizontal Fill
Fill_Y				= Vertical Fill
Pack_Columns		= Pack Columns
TabItem1_0			= Tab &0
TabItem1_1			= Tab &1
TabItem1_2			= Tab &2
TabItem_content		= TabItem Content
CTabItem1_0			= CTabItem &0
CTabItem1_1			= CTabItem &1
CTabItem1_2			= CTabItem &2 has a long name
CItem_Colors		= CTabItem Colors
CTabItem_content	= CTabItem Content
Mouse_Nav			= Mouse Navigator
Set_Simple_Tabs		= Simple Tabs
Set_Single_Tabs		= Single Tab
Set_Min_Visible     = Minimize
Set_Max_Visible     = Maximize
Set_Unselected_Close_Visible = Close on Unselected Tabs
Set_Unselected_Image_Visible = Image on Unselected Tabs
Selection_Foreground_Color = Selection Foreground Color
Selection_Background_Color = Selection Background Color
Item_Foreground_Color = Item Foreground Color
Item_Background_Color = Item Background Color
Link_Foreground_Color = Link Foreground Color
Set_Image			= Set Image
Set_Top_Right		= Set Top Right
Top_Right_Styles	= Top Right Styles
MenuItem_Cut		= Cu&t	Ctrl+X
MenuItem_Copy		= &Copy	Ctrl+C
MenuItem_Paste		= &Paste	Ctrl+V
MenuItem_SelectAll	= Select &All	Ctrl+A
Orientation 		= Orientation
Text_Direction	 	= Text Direction
Default 			= Default (Inherit)
Images				= Images
Accelerators		= Accelerators
Mnemonics			= Mnemonics
SubMenu				= Sub-Menu
SubSubMenu			= Sub-Sub-Menu
Show_Tooltip		= Tooltip
1Radio				= Radio1
2Radio				= Radio2
1RadioWithMnemonic	= Radio&1
2RadioWithMnemonic	= Radio&2
PushWithMnemonic	= &Push
RadioWithMnemonic	= &Radio
CheckWithMnemonic	= &Check
CascadeWithMnemonic	= C&ascade
PopupMenuHere		= Popup Menu Here
LinkText=Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt">SWT</A> homepage.
Tooltip				= Tooltip:  {0}
Item1_Text			= What is your favorite button?
Item2_Text			= What is your favorite icon?
ToolTip_Title		= Foxes vs. Dogs
No_Icon				= No Icon
Show_In_Tray		= Show In Tray
BrowserNotFound		= Browser not found:  {0}
WebKitNotFound		= Cannot use SWT.WEBKIT style:  {0}\nSee http://www.eclipse.org/swt/faq.php#howusewebkit for more information.
ColorTitle_0		= Name
ColorTitle_1		= Type
ColorTitle_2		= RGBA
ColorTitle_3		= Color
Header_Foreground_Color = Header Foreground Color
Header_Background_Color = Header Background Color
Tab_Height			= Tab Height