#############################################################
#
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
#
#############################################################
# 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
#save=&Save
#quit=Quit
finish=&Finish
help=&Help
#default=&Default
defaults=&Defaults
apply=&Apply
#add=&Add
#remove=&Remove
#up=&Up
#down=&Down
openBrowse=&Browse...
openChange=&Change...
#openAdd=&Add...
help=&Help
#window=&Window
#file=&File
#selected=&Selected
#next=&Next
close=&Close
#exit=E&xit
#find=&Find
#switchTo=SwitchTo

#############################################################
# Global string definitions
#############################################################
#true=true
#false=false

##############################################################
# The Cancel Running Operation Dialog
##############################################################
#CancelRunningOperationDialog.title=Running Operation
#CancelRunningOperationDialog.message=Cancel the running operation?

##############################################################
# Window Closing Dialog
##############################################################
#WindowClosingDialog.title=Window Closing
#WindowClosingDialog.message=Window can not be closed due to an active operation. You must cancel the operation before you can close the window.

##############################################################
# 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...

##############################################################
# The Operation Failed Dialog
##############################################################
#OperationFailedDialog.title=Operation Failed Information
#OperationFailedDialog.message=An operation failed due to the following reason:

##############################################################
# Wizards
##############################################################
#Wizard.title=Wizard
#Wizard.image=images/wizard.gif
#Wizard.back=< &Back
#Wizard.next=&Next >

##############################################################
# Preference Dialog
##############################################################
PreferenceDialog.title=Preferences
#PreferenceDialog.image=images/preference.gif
		
##############################################################
# Abort Page Flipping Dialog
##############################################################
AbortPageFlippingDialog.title=Warning
AbortPageFlippingDialog.message=The currently displayed page contains invalid values

##############################################################
# Save Confirm Dialog
##############################################################
#SaveConfirmDialog.title=Confirm
#SaveConfirmDialog.message=Text has been modified - save changes?

##############################################################
# 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 = Add &Item...
ListEditor.remove = &Remove Item
ListEditor.up = &Up
ListEditor.down = Dow&n

##############################################################
# Some constants for actions
##############################################################
#AboutAction.label=About...
#CloseAction.label=Close
#FlipBrowserOrientationAction.label=Flip Pane Orientation
#FlipBrowserOrientationAction.tooltip=Flip Layout Orientation in the Browser
#FlipBrowserOrientationAction.description=Flip layout orientation in the browser

#QuitAction.label=E&xit@Ctrl+Shift+Q
#FindAction.label=&Find...
#FindAction.description=Open the find dialog

#SaveAction.label=&Save
#SaveAction.description=Save the contents

#UndoTextAction.label=&Undo@Ctrl+Z
#UndoTextAction.description=Undo the last action

#RedoTextAction.label=&Redo@Ctrl+Y
#RedoTextAction.description=Redo the last action

#CopyTextAction.label=&Copy
#CopyTextAction.description=Copy the selection to the clipboard

#CutTextAction.label=Cu&t
#CutTextAction.description=Cut the selection to the clipboard

#PasteTextAction.label=&Paste
#PasteTextAction.description=Paste from the clipboard

#DeleteTextAction.label=&Delete
#DeleteTextAction.description=Delete the selection

#SelectAllTextAction.label=Select &All
#SelectAllTextAction.description=Select the entire contents
##############################################################
# Some constants for menus
##############################################################
#SwitchToMenu.label=Switch To

##############################################################
# Error messages for cell editors
##############################################################
#CellEditor.errorBox.title=Error during cell editing
#CellEditor.errorBox.message=Value can't be stored to domain model.\nReactivate cell editor ?
#CellEditor.genericErrorMessage=Cell editor contains invalid value.
#IntegerCellEditor.genericErrorMessage=Value "{0}" is not a valid integer.
#FloatCellEditor.genericErrorMessage=Value "{0}" is not a valid float.

##############################################################
# Error messages for TextViewer
##############################################################
#TextViewer.saveError.title=Error during text saving
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}

############################################################

Image_not_found = Image not found
<empty_selection> = <empty selection>
Unhandled_exception = Unhandled exception caught in event loop.
InternalErrorNoArg = An internal error has occurred. See error log for more details.
InternalErrorOneArg = An internal error has occurred. {0} See error log for more details.
Internal_error = Internal error
