#
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# This properties file is used to create a PropertyResourceBundle
# It contains Locale specific strings used in Swing
# Currently, it contains the additional strings needed for the Aqua versions of these components:
#
#    FileChooser
#
# 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.

############ FILE CHOOSER STRINGS #############
FileChooser.fileDescription.textAndMnemonic=Allgemeine Datei
FileChooser.directoryDescription.textAndMnemonic=Verzeichnis
FileChooser.newFolderError.textAndMnemonic=Bei der Erstellung des Ordners ist ein Fehler aufgetreten
FileChooser.newFolderErrorSeparator= :
FileChooser.acceptAllFileFilter.textAndMnemonic=Alle Dateien
FileChooser.cancelButton.textAndMnemonic=Abbrechen
FileChooser.saveButton.textAndMnemonic=Speichern
FileChooser.openButton.textAndMnemonic=\u00D6ffnen
FileChooser.saveDialogTitle.textAndMnemonic=Speichern
FileChooser.openDialogTitle.textAndMnemonic=\u00D6ffnen
FileChooser.updateButton.textAndMnemonic=Updaten
FileChooser.helpButton.textAndMnemonic=Hilfe
FileChooser.directoryOpenButton.textAndMnemonic=\u00D6ffnen

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

# Mac-specific strings
FileChooser.saveTitle.textAndMnemonic=Speichern
FileChooser.openTitle.textAndMnemonic=\u00D6ffnen
FileChooser.newFolderExistsError.textAndMnemonic=Dieser Name ist bereits vergeben
FileChooser.chooseButton.textAndMnemonic=W\u00E4hlen

FileChooser.newFolderButton.textAndMnemonic=Neuer Ordner
FileChooser.newFolderTitle.textAndMnemonic=Neuer Ordner
FileChooser.fileNameLabel.textAndMnemonic=Datei:
FileChooser.saveDialogFileNameLabel.textAndMnemonic=Speichern unter:
FileChooser.filesOfTypeLabel.textAndMnemonic=Dateiformat:

FileChooser.desktopName=Desktop
FileChooser.newFolderPrompt.textAndMnemonic=Name des neuen Ordners:
FileChooser.untitledFolderName=unbenannter Ordner
FileChooser.untitledFileName=unbenannt
FileChooser.createButton.textAndMnemonic=Erstellen

FileChooser.byDate.textAndMnemonic=\u00C4nderungsdatum
FileChooser.by.textAndMnemonic=Name
FileChooser.newFolderAccessibleName=Neuer Ordner

FileChooser.mac.newFolder=unbenannter Ordner
FileChooser.mac.newFolder.subsequent=unbenannter Ordner {0}


############ COLOR CHOOSER STRINGS #############
ColorChooser.preview.textAndMnemonic=Vorschau
ColorChooser.ok.textAndMnemonic=OK
ColorChooser.cancel.textAndMnemonic=Abbrechen
ColorChooser.reset.textAndMnemonic=&Zur\u00FCcksetzen
ColorChooser.sample.textAndMnemonic=Beispieltext  Beispieltext
ColorChooser.swatches.textAndMnemonic=&Muster
ColorChooser.swatchesRecent.textAndMnemonic=Aktuell:
ColorChooser.hsb.textAndMnemonic=&HSB
ColorChooser.hsbHue.textAndMnemonic=H
ColorChooser.hsbSaturation.textAndMnemonic=S
ColorChooser.hsbBrightness.textAndMnemonic=B
ColorChooser.hsbRed.textAndMnemonic=R
ColorChooser.hsbGreen.textAndMnemonic=G
ColorChooser.hsbBlue.textAndMnemonic=B
ColorChooser.rgb.textAndMnemonic=R&GB
ColorChooser.rgbRed.textAndMnemonic=Ro&t
ColorChooser.rgbGreen.textAndMnemonic=Gr\u00FC&n
ColorChooser.rgbBlue.textAndMnemonic=&Blau

############ OPTION PANE STRINGS #############
# We only define mnemonics for YES/NO, but for completeness you can
# define mnemonics for any of the buttons.
OptionPane.yesButton.textAndMnemonic=&Ja
OptionPane.noButton.textAndMnemonic=&Nein
OptionPane.okButton.textAndMnemonic=OK
OptionPane.cancelButton.textAndMnemonic=Abbrechen
OptionPane.title.textAndMnemonic=Option ausw\u00E4hlen
# 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.inputDialog.titleAndMnemonic=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.messageDialog.titleAndMnemonic=Meldung

############ Printing Dialog Strings ############
PrintingDialog.titleProgress.textAndMnemonic=Drucken
PrintingDialog.titleAborting.textAndMnemonic=Drucken (wird abgebrochen)

PrintingDialog.contentInitial.textAndMnemonic=Druckvorgang l\u00E4uft...

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

PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen ...

PrintingDialog.abortButton.textAndMnemonic=&Abbruch
PrintingDialog.abortButtonToolTip.textAndMnemonic=Druckvorgang abbrechen

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

############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=Wiederherstellen
InternalFrameTitlePane.moveButton.textAndMnemonic=Verschieben
InternalFrameTitlePane.sizeButton.textAndMnemonic=Gr\u00F6\u00DFe
InternalFrameTitlePane.minimizeButton.textAndMnemonic=Minimieren
InternalFrameTitlePane.maximizeButton.textAndMnemonic=Maximieren
InternalFrameTitlePane.closeButton.textAndMnemonic=Schlie\u00DFen

############ Text strings #############
# Used for html forms
FormView.submitButton.textAndMnemonic=Abfrage weiterleiten
FormView.resetButton.textAndMnemonic=Zur\u00FCcksetzen
FormView.browseFileButton.textAndMnemonic=Durchsuchen ...

############ Abstract Document Strings ############
AbstractDocument.styleChange.textAndMnemonic=Formatvorlagen\u00E4nderung
AbstractDocument.addition.textAndMnemonic=Hinzuf\u00FCgen
AbstractDocument.deletion.textAndMnemonic=L\u00F6schen
AbstractDocument.undo.textAndMnemonic=R\u00FCckg\u00E4ngig
AbstractDocument.redo.textAndMnemonic=Wiederherstellen

############ Abstract Button Strings ############
AbstractButton.click.textAndMnemonic=Klicken

############ Abstract Undoable Edit Strings ############
AbstractUndoableEdit.undo.textAndMnemonic=R\u00FCckg\u00E4ngig
AbstractUndoableEdit.redo.textAndMnemonic=Wiederherstellen

############ Combo Box Strings ############
ComboBox.togglePopup.textAndMnemonic=togglePopup

############ Progress Monitor Strings ############
ProgressMonitor.progress.textAndMnemonic=Fortschritt ...

############ Split Pane Strings ############
SplitPane.leftButton.textAndMnemonic=linke Schaltfl\u00E4che
SplitPane.rightButton.textAndMnemonic=rechte Schaltfl\u00E4che
# Used for Isindex
IsindexView.prompt=Dieser Index kann durchsucht werden. Geben Sie Schl\u00FCsselw\u00F6rter f\u00FCr die Suche ein:

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