# 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: 2016-04-18 14:50+0100\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:273
msgid " - Press Ctrl+Alt+G to release grab"
msgstr "- Appuyer sur Ctrl+Alt+G pour arrêter la capture"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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