# German translation for QEMU.
# This file is put in the public domain.
# Kevin Wolf <kwolf@redhat.com>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2016-12-13 21:46+0000\n"
"PO-Revision-Date: 2012-02-28 16:00+0100\n"
"Last-Translator: Kevin Wolf <kwolf@redhat.com>\n"
"Language-Team: Deutsch <de@li.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"

#: ui/gtk.c:275
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Strg+Alt+G drücken, um Eingabegeräte freizugeben"

#: ui/gtk.c:279
msgid " [Paused]"
msgstr " [Angehalten]"

#: ui/gtk.c:1922
msgid "_Pause"
msgstr "_Angehalten"

#: ui/gtk.c:1928
msgid "_Reset"
msgstr "_Reset"

#: ui/gtk.c:1931
msgid "Power _Down"
msgstr "_Herunterfahren"

#: ui/gtk.c:1937
msgid "_Quit"
msgstr "_Beenden"

#: ui/gtk.c:2029
msgid "_Fullscreen"
msgstr "_Vollbild"

#: ui/gtk.c:2032
msgid "_Copy"
msgstr "_Kopieren"

#: ui/gtk.c:2048
msgid "Zoom _In"
msgstr "_Heranzoomen"

#: ui/gtk.c:2055
msgid "Zoom _Out"
msgstr "_Wegzoomen"

#: ui/gtk.c:2062
msgid "Best _Fit"
msgstr "_Einpassen"

#: ui/gtk.c:2069
msgid "Zoom To _Fit"
msgstr "Auf _Fenstergröße skalieren"

#: ui/gtk.c:2075
msgid "Grab On _Hover"
msgstr "Tastatur _automatisch einfangen"

#: ui/gtk.c:2078
msgid "_Grab Input"
msgstr "_Eingabegeräte einfangen"

#: ui/gtk.c:2107
msgid "Show _Tabs"
msgstr "Reiter anzeigen"

#: ui/gtk.c:2110
msgid "Detach Tab"
msgstr "Reiter abtrennen"

#: ui/gtk.c:2122
msgid "_Machine"
msgstr "_Maschine"

#: ui/gtk.c:2127
msgid "_View"
msgstr "_Ansicht"
