# French translation for QEMU.
# This file is put in the public domain.
#
# Aurelien Jarno <aurelien@aurel32.net>, 2013, 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-28 23:25+0200\n"
"Last-Translator: Aurelien Jarno <aurelien@aurel32.net>\n"
"Language-Team: French <FR@li.org>\n"
"Language: fr\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"
"X-Generator: Lokalize 1.4\n"

#: ui/gtk.c:260
msgid " - Press Ctrl+Alt+G to release grab"
msgstr "- Appuyer sur Ctrl+Alt+G pour arrêter la capture"

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

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

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

#: ui/gtk.c:1697
msgid "Power _Down"
msgstr "_Éteindre"

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

#: ui/gtk.c:1787
msgid "_Fullscreen"
msgstr "Mode _plein écran"

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

#: ui/gtk.c:1808
msgid "Zoom _Out"
msgstr "_Zoom arrière"

#: ui/gtk.c:1815
msgid "Best _Fit"
msgstr "Zoom _idéal"

#: ui/gtk.c:1822
msgid "Zoom To _Fit"
msgstr "Zoomer pour a_juster"

#: ui/gtk.c:1828
msgid "Grab On _Hover"
msgstr "Capturer en _survolant"

#: ui/gtk.c:1831
msgid "_Grab Input"
msgstr "_Capturer les entrées"

#: ui/gtk.c:1860
msgid "Show _Tabs"
msgstr "Montrer les _onglets"

#: ui/gtk.c:1863
msgid "Detach Tab"
msgstr "_Détacher l'onglet"

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

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