# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used in Swing
# Currently, the following components need this for support:
#
#    ColorChooser
#    FileChooser
#    OptionPane
#
# When this file is read in, the strings are put into the 
# defaults table.  This is an implementation detail of the current
# workings of Swing.  DO NOT DEPEND ON THIS.  
# This may change in future versions of Swing as we improve localization 
# support.
#
#                        MNEMONIC NOTE:
# Many of strings in this file are used by widgets that have a
# mnemonic, for example:
#   ColorChooser.rgbNameText=RGB
#   ColorChooser.rgbMnemonic=71
#   ColorChooser.rgbDisplayedMnemonicIndex=1
# Indicates that the tab in the ColorChooser for RGB colors will have
# the text 'RGB', further the mnemonic character will be 'g' and that
# a decoration will be provided under the 'G'. This will typically
# look like:  RGB
#              -
# 71 corresponds to the decimal value of the VK constant defined
# in java/awt/KeyEvent.java. VK_G is defined as:
#
#    public static final int VK_G              = 0x47;
#
# 0x47 is a hex number and needs to be converted to decimal.
# A simple way to calculate this for a-z is to add 64 to the index of
# the letter in the alphabet. As 'a' is in the 1st letter the mnemonic
# for 'a' is 65, 'b' is 66...
#
# The xxDisplayedMnemonicIndex is used to indicate the index of the
# character that should be underlined in the String, with 0
# corresponding to the first character in the String.
#
# One important thing to remember is that the mnemonic MUST exist in
# the String, if it does not exist you should add text that makes it
# exist. This will typically take the form 'XXXX (M)' where M is the
# character for the mnemonic.
# 
# @author Steve Wilson

############ FILE CHOOSER STRINGS #############
FileChooser.fileDescriptionText=Allgemeine Datei
FileChooser.directoryDescriptionText=Verzeichnis
FileChooser.newFolderErrorText=Fehler beim Erstellen eines neuen Ordners
FileChooser.newFolderErrorSeparator= : 
FileChooser.newFolderParentDoesntExistTitleText=Unable to create folder
FileChooser.newFolderParentDoesntExistText=Unable to create the folder.\n\nThe system cannot find the path specified.
FileChooser.renameErrorTitleText=Error Renaming File or Folder
FileChooser.renameErrorText=Cannot rename {0}
FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name you specified already exists. \
  Specify a different file name.
FileChooser.acceptAllFileFilterText=Alle Dateien
FileChooser.cancelButtonText=Abbrechen
FileChooser.cancelButtonMnemonic=65
FileChooser.saveButtonText=Speichern
FileChooser.saveButtonMnemonic=83
FileChooser.openButtonText=\u00d6ffnen
FileChooser.openButtonMnemonic=70
FileChooser.saveDialogTitleText=Speichern
FileChooser.openDialogTitleText=\u00d6ffnen
FileChooser.updateButtonText=Aktualisieren
FileChooser.updateButtonMnemonic=75
FileChooser.helpButtonText=Hilfe
FileChooser.helpButtonMnemonic=72
FileChooser.directoryOpenButtonText=\u00d6ffnen
FileChooser.directoryOpenButtonMnemonic=69

# File Size Units
FileChooser.fileSizeKiloBytes={0} KB
FileChooser.fileSizeMegaBytes={0} MB
FileChooser.fileSizeGigaBytes={0} GB

# These strings are platform dependent not look and feel dependent.
FileChooser.win32.newFolder=Neuer Ordner
FileChooser.win32.newFolder.subsequent=Neuer Ordner ({0})
FileChooser.other.newFolder=Neuer Ordner
FileChooser.other.newFolder.subsequent=Neuer Ordner.{0}


## file chooser tooltips ###
FileChooser.cancelButtonToolTipText=Dialogfeld f\u00fcr Dateiauswahl abbrechen
FileChooser.saveButtonToolTipText=Ausgew\u00e4hlte Datei speichern
FileChooser.openButtonToolTipText=Ausgew\u00e4hlte Datei \u00f6ffnen
FileChooser.updateButtonToolTipText=Verzeichnisliste aktualisieren
FileChooser.helpButtonToolTipText=Hilfe f\u00fcr Dateiauswahl
FileChooser.directoryOpenButtonToolTipText=Markiertes Verzeichnis \u00f6ffnen

############ COLOR CHOOSER STRINGS #############
ColorChooser.previewText=Vorschau
ColorChooser.okText=OK
ColorChooser.cancelText=Abbrechen
ColorChooser.resetText=Zur\u00fccksetzen
# VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic
ColorChooser.resetMnemonic=90
ColorChooser.sampleText=Beispieltext  Beispieltext
ColorChooser.swatchesNameText=Muster
ColorChooser.swatchesMnemonic=77
ColorChooser.swatchesDisplayedMnemonicIndex=0
ColorChooser.swatchesRecentText=Aktuell:
ColorChooser.hsbNameText=HSB
# Each of the ColorChooser types can define a mnemonic, as a KeyEvent.VK_XXX
# constant, and an index into the text to render the mnemonic as. The
# mnemonic is xxxMnemonic and the index of the character to underline is
# xxxDisplayedMnemonicIndex.
ColorChooser.hsbMnemonic=72
ColorChooser.hsbDisplayedMnemonicIndex=0
ColorChooser.hsbHueText=H
ColorChooser.hsbSaturationText=S
ColorChooser.hsbBrightnessText=B
ColorChooser.hsbRedText=R
ColorChooser.hsbGreenText=G
ColorChooser.hsbBlueText=B
ColorChooser.rgbNameText=RGB
ColorChooser.rgbMnemonic=71
ColorChooser.rgbDisplayedMnemonicIndex=1
ColorChooser.rgbRedText=Rot
ColorChooser.rgbRedMnemonic=82
ColorChooser.rgbGreenText=Gr\u00fcn
ColorChooser.rgbGreenMnemonic=78
ColorChooser.rgbBlueText=Blau
ColorChooser.rgbBlueMnemonic=66

############ OPTION PANE STRINGS #############
# Mnemonic keys correspond to KeyEvent.VK_XXX constant
# We only define mnemonics for YES/NO, but for completeness you can
# define mnemonics for any of the buttons.
OptionPane.yesButtonText=Ja
OptionPane.yesButtonMnemonic=74
OptionPane.noButtonText=Nein
OptionPane.noButtonMnemonic=78
OptionPane.okButtonText=OK
OptionPane.okButtonMnemonic=79
OptionPane.cancelButtonText=Abbrechen
OptionPane.cancelButtonMnemonic=65
OptionPane.titleText=W\u00e4hlen Sie eine Option aus
# Title for the dialog for the showInputDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.inputDialogTitle=Eingabe
# Title for the dialog for the showMessageDialog methods. Only used if
# the developer uses one of the variants that doesn't take a title.
OptionPane.messageDialogTitle=Nachricht

############ Printing Dialog Strings ############
PrintingDialog.titleProgressText=Drucken
PrintingDialog.titleAbortingText=Drucken (Abbruch)

PrintingDialog.contentInitialText=Druckvorgang l\u00e4uft...

# The following string will be formatted by a MessageFormat
# and {0} will be replaced by page number being printed
PrintingDialog.contentProgressText=Seite {0} wurde gedruckt...

PrintingDialog.contentAbortingText=Druckvorgang wird abgebrochen...

PrintingDialog.abortButtonText=Abbrechen
PrintingDialog.abortButtonMnemonic=66
PrintingDialog.abortButtonDisplayedMnemonicIndex=1
PrintingDialog.abortButtonToolTipText=Druckvorgang abbrechen

############ Internal Frame Strings ############
InternalFrame.iconButtonToolTip=Minimieren
InternalFrame.maxButtonToolTip=Maximieren
InternalFrame.restoreButtonToolTip=Wiederherstellen
InternalFrame.closeButtonToolTip=Schlie\u00dfen

############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButtonText=Wiederherstellen
InternalFrameTitlePane.moveButtonText=Verschieben
InternalFrameTitlePane.sizeButtonText=Gr\u00f6\u00dfe
InternalFrameTitlePane.minimizeButtonText=Minimieren
InternalFrameTitlePane.maximizeButtonText=Maximieren
InternalFrameTitlePane.closeButtonText=Schlie\u00dfen

############ Text strings #############
# Used for html forms
FormView.submitButtonText=Abfrage senden
FormView.resetButtonText=Zur\u00fccksetzen
FormView.browseFileButtonText=Durchsuchen...

############ Abstract Document Strings ############
AbstractDocument.styleChangeText=Formatvorlagen\u00e4nderung
AbstractDocument.additionText=Hinzuf\u00fcgen
AbstractDocument.deletionText=L\u00f6schen
AbstractDocument.undoText=R\u00fcckg\u00e4ngig
AbstractDocument.redoText=Wiederherstellen

############ Abstract Button Strings ############
AbstractButton.clickText=Klicken

############ Abstract Undoable Edit Strings ############
AbstractUndoableEdit.undoText=R\u00fcckg\u00e4ngig
AbstractUndoableEdit.redoText=Wiederherstellen

############ Combo Box Strings ############
ComboBox.togglePopupText=Popup umschalten

############ Progress Monitor Strings ############
ProgressMonitor.progressText=Fortschritt...

############ Split Pane Strings ############
SplitPane.leftButtonText=linke Taste
SplitPane.rightButtonText=rechte Taste
# Used for Isindex
IsindexView.prompt=Dieser Index kann durchsucht werden. Geben Sie ein Schlagwort ein:

############ InternalFrameTitlePane Strings ############
InternalFrameTitlePane.iconifyButtonAccessibleName=Als Symbol darstellen
InternalFrameTitlePane.maximizeButtonAccessibleName=Maximieren
InternalFrameTitlePane.closeButtonAccessibleName=Schlie\u00dfen
