###############################################################################
# Copyright (c) 2000, 2005 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
###############################################################################
# NLS file for JFace
#############################################################

#############################################################
# Global label definitions
#############################################################
ok=OK
cancel=Cancel
yes=&Yes
yestoall=Yes To &All
skip=S&kip
stop=&Stop
abort=&Abort
retry=&Retry
ignore=&Ignore
proceed=&Proceed
open=&Open
close=&Close
showDetails=&Details >>
hideDetails=<< &Details
backButton=< &Back
nextButton=&Next >
finish=&Finish
help=&Help
no=&No
notoall=No &To All
finish=&Finish
help=&Help
defaults=Restore &Defaults
apply=&Apply
openBrowse=&Browse...

openChange=&Change...
help=&Help
close=&Close
copy = &Copy

error=Error
warning=Warning
info=Info
question=Question

##############################################################
# Wizard Closing Dialog
##############################################################
WizardClosingDialog.title=Wizard Closing
WizardClosingDialog.message=Wizard can not be closed due to an active operation. You must cancel the operation before you can close the wizard.

##############################################################
# The Progress Monitor Dialog
##############################################################
ProgressMonitorDialog.title=Progress Information
ProgressMonitorDialog.message=Operation in progress...

##############################################################
# Preference Dialog
##############################################################
PreferenceDialog.title=Preferences
PreferenceDialog.saveErrorTitle=Problem Saving Preferences
PreferenceDialog.saveErrorMessage=A problem was encountered saving the page {0}.\n{1}

##############################################################
# Change Errors
##############################################################
PreferenceStore.changeError=Error notifying a preference change listener. Check the log for details.
FontRegistry.changeError=Error notifying a font registry change listener. Check the log for details.
		
##############################################################
# Abort Page Flipping Dialog
##############################################################
AbortPageFlippingDialog.title=Could Not Accept Changes 
AbortPageFlippingDialog.message=The currently displayed page contains invalid values.

##############################################################
# Field editors
##############################################################
StringFieldEditor.errorMessage=Field contains an invalid value
IntegerFieldEditor.errorMessage=Value must be an Integer
FileFieldEditor.errorMessage=Value must be an existing file
FileFieldEditor.errorMessage2=Value must be an absolute path
DirectoryFieldEditor.errorMessage=Value must be an existing directory
ListEditor.add = Ne&w...
ListEditor.remove = &Remove
ListEditor.up = &Up
ListEditor.down = Dow&n

##############################################################
# Error messages for TextViewer
##############################################################
TextViewer.invalidRangeArg=Invalid range argument
TextViewer.invalidVisibleRegionArg=Invalid visible region argument

#############################################################
# org.eclipse.jface.action 
#############################################################
Cancel_Current_Operation = Cancel Current Operation
Set_SubTask = {0} {1}

#############################################################
# org.eclipse.jface.dialog
############################################################
Problem_Occurred = Problem Occurred
Reason = {0}\n\nReason:\n {1}
MessageDialogWithToggle.defaultToggleMessage = &Remember my decision
PopupDialog.resize = &Resize
PopupDialog.move = &Move
PopupDialog.persistBounds = R&emember Size and Location
PopupDialog.menuTooltip = Menu

############################################################

Image_not_found = Image not found
<empty_selection> = <empty selection>

########################################################
# Font properties labels for displaying a font
#######################################################
BoldItalicFont = bold italic
BoldFont = bold
ItalicFont = italic
RegularFont = regular

#############################################################
# String representations of keys for Status line messages
############################################################
Ctrl = Ctrl
Command = Command
Alt = Alt
Shift = Shift
Backspace = Backspace
Tab = Tab
Return = Return
Enter = Enter
Escape = Escape
Esc = Esc
Delete = Delete
Space = Space
Arrow_Up = Arrow Up
Arrow_Down = Arrow Down
Arrow_Left = Arrow Left
Arrow_Right = Arrow Right
Page_Up = Page Up
Page_Down = Page Down
Home = Home
End = End
Insert = Insert
F1 = F1
F2 = F2
F3 = F3
F4 = F4
F5 = F5
F6 = F6
F7 = F7
F8 = F8
F9 = F9
F10 = F10
F11 = F11
F12 = F12

##############################################
# Safe Runnable
##############################################
SafeRunnable.errorMessage = An error has occurred. See error log for more details.
ColorSelector.Name=Color Selector

#############################################################
# org.eclipse.jface.viewers.deferred 
#############################################################
Sorting = sorting

