# Italian translation for QEMU.
# This file is put in the public domain.
# Paolo Bonzini <pbonzini@redhat.com>, 2012-2014.
#
msgid ""
msgstr ""
"Project-Id-Version: QEMU 1.4.50\n"
"Report-Msgid-Bugs-To: qemu-devel@nongnu.org\n"
"POT-Creation-Date: 2015-07-30 07:34+0200\n"
"PO-Revision-Date: 2014-07-29 08:25+0200\n"
"Last-Translator: Paolo Bonzini <pbonzini@redhat.com>\n"
"Language-Team: Italian <it@li.org>\n"
"Language: it\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:260
msgid " - Press Ctrl+Alt+G to release grab"
msgstr " - Premere Ctrl+Alt+G per rilasciare l'input"

#: ui/gtk.c:264
msgid " [Paused]"
msgstr " [Pausa]"

#: ui/gtk.c:1688
msgid "_Pause"
msgstr "_Pausa"

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

#: ui/gtk.c:1697
msgid "Power _Down"
msgstr "_Spegni"

#: ui/gtk.c:1703
msgid "_Quit"
msgstr "_Esci"

#: ui/gtk.c:1787
msgid "_Fullscreen"
msgstr ""

#: ui/gtk.c:1801
msgid "Zoom _In"
msgstr "_Aumenta zoom"

#: ui/gtk.c:1808
msgid "Zoom _Out"
msgstr "_Riduci zoom"

#: ui/gtk.c:1815
msgid "Best _Fit"
msgstr "A_nnulla zoom"

#: ui/gtk.c:1822
msgid "Zoom To _Fit"
msgstr "Adatta alla _finestra"

#: ui/gtk.c:1828
msgid "Grab On _Hover"
msgstr "Cattura _automatica input"

#: ui/gtk.c:1831
msgid "_Grab Input"
msgstr "_Cattura input"

#: ui/gtk.c:1860
msgid "Show _Tabs"
msgstr "Mostra _tab"

#: ui/gtk.c:1863
msgid "Detach Tab"
msgstr "_Sposta in una nuova finestra"

#: ui/gtk.c:1875
msgid "_Machine"
msgstr "_Macchina virtuale"

#: ui/gtk.c:1880
msgid "_View"
msgstr "_Visualizza"
