# SPDX-License-Identifier: LGPL-2.1-or-later
#
#  Copyright © 2013-2016 Sylvain Plantefève

# Message catalog for systemd's own messages
# French translation

# Le format du catalogue de messages est décrit (en anglais) içi :
# https://www.freedesktop.org/wiki/Software/systemd/catalog

-- f77379a8490b408bbe5f6940505a777b
Subject: Le journal a été démarré
Defined-By: systemd
Support: %SUPPORT_URL%

Le processus du journal système a démarré, ouvert ses fichiers en écriture
et est prêt à traiter les requêtes.

-- d93fb3c9c24d451a97cea615ce59c00b
Subject: Le journal a été arrêté
Defined-By: systemd
Support: %SUPPORT_URL%

Le processus du journal système a été arrêté et tous ses fichiers actifs
ont été fermés.

-- ec387f577b844b8fa948f33cad9a75e6
Subject: Espace disque utilisé par le journal
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:journald.conf(5)

@JOURNAL_NAME@ (@JOURNAL_PATH@) utilise actuellement @CURRENT_USE_PRETTY@.
Le maximum autorisé est défini à @MAX_USE_PRETTY@.
Au moins @DISK_KEEP_FREE_PRETTY@ doivent être laissés libres
(sur @DISK_AVAILABLE_PRETTY@ d'espace disque actuellement libre).
La limite appliquée est donc @LIMIT_PRETTY@, dont @AVAILABLE_PRETTY@
sont toujours disponibles.

Les limites définissant la quantité d'espace disque que peut utiliser le
journal peuvent être configurées avec les paramètres SystemMaxUse=,
SystemKeepFree=, SystemMaxFileSize=, RuntimeMaxUse=, RuntimeKeepFree=,
RuntimeMaxFileSize= dans le fichier /etc/systemd/journald.conf.
Voir journald.conf(5) pour plus de détails.

-- a596d6fe7bfa4994828e72309e95d61e
Subject: Des messages d'un service ont été supprimés
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:journald.conf(5)

Un service a essayé d'enregistrer un trop grand nombre de messages sur un
intervalle de temps donné. Des messages de ce service ont été évincés.

Notez que seuls des messages de ce service ont été évincés, les messages des
autres services ne sont pas affectés.

Les limites définissant ce comportement peuvent être configurées avec les
paramètres RateLimitIntervalSec= et RateLimitBurst= dans le fichier
/etc/systemd/journald.conf. Voir journald.conf(5) pour plus de détails.

-- e9bf28e6e834481bb6f48f548ad13606
Subject: Des messages du journal ont été manqués
Defined-By: systemd
Support: %SUPPORT_URL%

Des messages du noyau ont été manqués car le journal système n'a pas été
capable de les traiter suffisamment vite.

-- fc2e22bc6ee647b6b90729ab34a250b1
Subject: Le processus @COREDUMP_PID@ (@COREDUMP_COMM@) a généré un fichier « core »
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:core(5)

Le processus @COREDUMP_PID@ (@COREDUMP_COMM@) a planté et généré un fichier « core ».

Cela indique généralement une erreur de programmation dans le programme
incriminé, et cela devrait être notifié à son concepteur comme un défaut (bug).

-- 8d45620c1a4348dbb17410da57c60c66
Subject: Une nouvelle session @SESSION_ID@ a été créée pour l'utilisateur @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: sd-login(3)

Une nouvelle session a été créée pour l'utilisateur @USER_ID@ avec
l'identifiant (ID) @SESSION_ID@.

Le processus maître de la session est @LEADER@.

-- 3354939424b4456d9802ca8333ed424a
Subject: La session @SESSION_ID@ s'est terminée
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: sd-login(3)

La session d'identifiant (ID) @SESSION_ID@ s'est terminée.

-- fcbefc5da23d428093f97c82a9290f7b
Subject: Un nouveau poste (seat) @SEAT_ID@ est disponible
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: sd-login(3)

Un nouveau poste (seat) @SEAT_ID@ a été configuré et est maintenant
disponible.

-- e7852bfe46784ed0accde04bc864c2d5
Subject: Le poste (seat) @SEAT_ID@ a été retiré
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: sd-login(3)

Le poste (seat) @SEAT_ID@ a été retiré et n'est plus disponible.

-- c7a787079b354eaaa9e77b371893cd27
Subject: Changement d'heure
Defined-By: systemd
Support: %SUPPORT_URL%

L'horloge système a été modifiée et positionnée à @REALTIME@ microsecondes
après le 1er janvier 1970.

-- 45f82f4aef7a4bbf942ce861d1f20990
Subject: Fuseau horaire modifié en @TIMEZONE@
Defined-By: systemd
Support: %SUPPORT_URL%

Le fuseau horaire du système a été modifié et positionné à @TIMEZONE@.

-- b07a249cd024414a82dd00cd181378ff
Subject: Le démarrage du système est terminé
Defined-By: systemd
Support: %SUPPORT_URL%

Tous les services nécessaires au démarrage du système ont été lancés.
Notez que cela ne signifie pas que le système est maintenant au repos,
car des services peuvent encore être en train de terminer leur démarrage.

Le chargement du noyau a nécessité @KERNEL_USEC@ microsecondes.

Le chargement du « RAM disk » initial a nécessité @INITRD_USEC@ microsecondes.

Le chargement de l'espace utilisateur a nécessité @USERSPACE_USEC@ microsecondes.

-- eed00a68ffd84e31882105fd973abdd1
Subject: Le démarrage du gestionnaire utilisateur est terminé
Defined-By: systemd
Support: %SUPPORT_URL%

L'instance du gestionnaire d'utilisateurs pour l'utilisateur @_UID@ a été démarrée.
Tous les services en file d'attente pour démarrer ont été lancés.
Notez que des services peuvent être encore en train de démarrer,
ou d'autres être lancés à tout moment ultérieur.

Le démarrage du gestionnaire a nécéssité @USERSPACE_USEC@ microsecondes.

-- 6bbd95ee977941e497c48be27c254128
Subject: Le système entre dans l'état de repos (sleep state) @SLEEP@
Defined-By: systemd
Support: %SUPPORT_URL%

Le système est maintenant à l'état de repos (sleep state) @SLEEP@.

-- 8811e6df2a8e40f58a94cea26f8ebf14
Subject: Le système sorti de l'état de repos (sleep state) @SLEEP@
Defined-By: systemd
Support: %SUPPORT_URL%

Le système est maintenant sorti de l'état de repos (sleep state) @SLEEP@.

-- 98268866d1d54a499c4e98921d93bc40
Subject: Arrêt du système amorcé
Defined-By: systemd
Support: %SUPPORT_URL%

L'arrêt du système a été amorcé. L'arrêt a maintenant commencé, tous les
services du système sont terminés et tous les systèmes de fichiers sont
démontés.

-- 7d4958e842da4a758f6c1cdc7b36dcc5
Subject: L'unité (unit) @UNIT@ a commencé à démarrer
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a commencé à démarrer.

-- 39f53479d3a045ac8e11786248231fbf
Subject: L'unité (unit) @UNIT@ a terminé son démarrage
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a terminé son démarrage, avec le résultat @JOB_RESULT@.

-- de5b426a63be47a7b6ac3eaac82e2f6f
Subject: L'unité (unit) @UNIT@ a commencé à s'arrêter
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a commencé à s'arrêter.

-- 9d1aaa27d60140bd96365438aad20286
Subject: L'unité (unit) @UNIT@ a terminé son arrêt
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a terminé son arrêt.

-- be02cf6855d2428ba40df7e9d022f03d
Subject: L'unité (unit) @UNIT@ a échoué
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a échoué, avec le résultat @JOB_RESULT@.

-- d34d037fff1847e6ae669a370e694725
Subject: L'unité (unit) @UNIT@ a commencé à recharger sa configuration
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a commencé à recharger sa configuration.

-- 7b05ebc668384222baa8881179cfda54
Subject: L'unité (unit) @UNIT@ a terminé de recharger configuration
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ a terminé de recharger configuration,
avec le résultat @JOB_RESULT@.

-- 641257651c1b4ec9a8624d7a40a9e1e7
Subject: Le processus @EXECUTABLE@ n'a pas pu être exécuté
Defined-By: systemd
Support: %SUPPORT_URL%

Le processus @EXECUTABLE@ n'a pas pu être exécuté, et a donc échoué.

Le code d'erreur renvoyé est @ERRNO@.

-- 0027229ca0644181a76c4e92458afa2e
Subject: Un ou plusieurs messages n'ont pas pu être transmis à syslog
Defined-By: systemd
Support: %SUPPORT_URL%

Un ou plusieurs messages n'ont pas pu être transmis au service syslog
s'exécutant conjointement avec journald. Cela indique généralement que
l'implémentation de syslog utilisée n'a pas été capable de suivre
la cadence du flux de messages.

-- 1dee0369c7fc4736b7099b38ecb46ee7
Subject: Le point de montage n'est pas vide
Defined-By: systemd
Support: %SUPPORT_URL%

Le répertoire @WHERE@ est spécifié comme point de montage (second champ du
fichier /etc/fstab, ou champ Where= dans une unité (unit) systemd) et n'est
pas vide.
Cela ne perturbe pas le montage du système de fichiers, mais les fichiers
préalablement présents dans ce répertoire sont devenus inaccessibles.
Pour atteindre ces fichiers, veuillez monter manuellement le système de
fichiers sous-jacent à un autre emplacement.

-- 24d8d4452573402496068381a6312df2
Subject: Une machine virtuelle ou un conteneur (container) a été démarré
Defined-By: systemd
Support: %SUPPORT_URL%

La machine virtuelle @NAME@ a été démarrée avec le PID maître @LEADER@,
et est maintenant prête à l'emploi.

-- 58432bd3bace477cb514b56381b8a758
Subject: Une machine virtuelle ou un conteneur (container) a été arrêté
Defined-By: systemd
Support: %SUPPORT_URL%

La machine virtuelle @NAME@ avec le PID maître @LEADER@ a été arrêtée.

-- 36db2dfa5a9045e1bd4af5f93e1cf057
Subject: Le mode DNSSEC a été désactivé, car il n'est pas supporté par le serveur
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8) resolved.conf(5)

Le service de résolution (systemd-resolved.service) a détecté que le serveur
DNS configuré ne supporte pas DNSSEC, et la validation DNSSEC a donc été
désactivée.

Cet évènement se produit si DNSSEC=allow-downgrade est configuré dans
resolved.conf et que le serveur DNS configuré n'est pas compatible avec
DNSSEC.
Veuillez noter que ce mode permet des attaques de rétrogradation DNSSEC,
car un attaquant peut être capable de désactiver la validation DNSSEC sur
le système en injectant des réponses DNS dans le canal de communication.

Cet évènement indique que le serveur DNS est effectivement incompatible avec
DNSSEC, ou qu'un attaquant a peut-être conduit une telle attaque avec succès.

-- 1675d7f172174098b1108bf8c7dc8f5d
Subject: La validation DNSSEC a échoué
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8)

Une requête ou une ressource DNS n'a pas passé la validation DNSSEC.
Ceci est généralement une indication que le canal de communication a été
altéré.

-- 4d4408cfd0d144859184d1e65d7c8a65
Subject: Une ancre de confiance DNSSEC a été révoquée
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:systemd-resolved.service(8)

Une ancre de confiance DNSSEC a été révoquée. Une nouvelle ancre de
confiance doit être configurée, ou le système d'exploitation a besoin
d'être mis à jour, pour fournir une version à jour de l'ancre de confiance.

-- 5eb03494b6584870a536b337290809b3
Subject: Le redémarrage automatique d'une unité (unit) a été planifié
Defined-By: systemd
Support: %SUPPORT_URL%

Le redémarrage automatique de l'unité (unit) @UNIT@ a été planifié, en
raison de sa configuration avec le paramètre Restart=.

-- ae8f7b866b0347b9af31fe1c80b127c0
Subject: Ressources consommées durant l'éxécution de l'unité (unit)
Defined-By: systemd
Support: %SUPPORT_URL%

L'unité (unit) @UNIT@ s'est arrêtée et a consommé les ressources indiquées.

-- 50876a9db00f4c40bde1a2ad381c3a1b
Subject: Le système est configuré d'une manière qui pourrait causer des problèmes
Defined-By: systemd
Support: %SUPPORT_URL%

Les étiquettes suivantes sont possibles :
- "split-usr" — /usr est un système de fichiers séparé et nétait pas
  monté quand systemd a été démarré
- "cgroups-missing" — le noyau a été compilé sans le support des groupes
  de contrôle (cgroups) ou l'accès aux fichiers d'interface est restreint
- "var-run-bad" — /var/run n'est pas un lien symbolique vers /run
- "overflowuid-not-65534" — l'ID utilisé par le noyau pour l'utilisateur
  "unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534
- "overflowgid-not-65534" — l'ID utilisé par le noyau pour le groupe
  "unknown" (avec NFS ou l'espace de noms utilisateurs) n'est pas 65534

Le présent système est étiqueté @TAINT@.
