# Copyright (C) 2006 Frédéric ZULIAN <zulian@free.fr>, Christian Perrier <bubulle@debian.org>, 2007.
# This file is distributed under the same license as the watchdog package.
# Relecteurs :Jean-Baka Domelevo-Entfellner <domelevo@gmail.com>,
# Christian Perrier <bubulle@debian.org>,  Olivier Trichet <nive@nivalis.org>
# Thomas Huriaux <thomas.huriaux@gmail.com> et Frédéric Bothamy <frederic.bothamy@free.fr>
msgid ""
msgstr ""
"Project-Id-Version:\n"
"Report-Msgid-Bugs-To: meskes@debian.org\n"
"POT-Creation-Date: 2007-07-16 08:48+0200\n"
"PO-Revision-Date: 2007-07-11 19:54+0200\n"
"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"

#. Type: boolean
#. Description
#: ../templates:2001
msgid "Start watchdog at boot time?"
msgstr "Faut-il lancer watchdog au démarrage ?"

#. Type: boolean
#. Description
#: ../templates:2001
msgid ""
"Please specify whether watchdog should be started as part of the boot "
"process. This can be changed later by editing /etc/default/watchdog."
msgstr ""
"Veuillez indiquer si vous désirez démarrer watchdog à l'amorçage de "
"l'ordinateur. Vous pourrez changer ce comportement plus tard en modifiant le "
"fichier /etc/default/watchdog."

#. Type: boolean
#. Description
#: ../templates:3001
msgid "Restart watchdog on upgrades?"
msgstr "Faut-il redémarrer watchdog lors des mises à jour ?"

#. Type: boolean
#. Description
#: ../templates:3001
msgid ""
"If the kernel is configured with the CONFIG_WATCHDOG_NOWAYOUT option (which "
"is not the default setting), restarting watchdog will cause a spurious "
"reboot (the kernel will assume that the watchdog daemon crashed)."
msgstr ""
"Si le noyau est configuré avec l'option CONFIG_WATCHDOG_NOWAYOUT (ce qui "
"n'est pas l'option par défaut), le redémarrage de watchdog causera un "
"réamorçage indésirable (le noyau pensera que le démon s'est brutalement "
"arrêté)."

#. Type: string
#. Description
#: ../templates:4001
msgid "Watchdog module to preload:"
msgstr "Module watchdog à précharger :"

#. Type: string
#. Description
#: ../templates:4001
msgid ""
"Please choose which watchdog module should be preloaded before starting "
"watchdog. The 'softdog' module should be suited for all installations. Enter "
"'none' if you don't want the script to load a module."
msgstr ""
"Veuillez choisir le module watchdog qui doit être préchargé avant de lancer "
"watchdog. Le module « softdog » est adapté à toutes les situations. Vous "
"pouvez indiquer « none » si vous ne souhaitez pas précharger de module."
