feat(i18n): add French (fr) locale support

- Add fr.yaml with French translations for approval prompts and gateway messages
- Register 'fr' in SUPPORTED_LANGUAGES
- Add French aliases: french, français, fr-fr, fr-be, fr-ca, fr-ch
- Update locale sync comment in en.yaml
This commit is contained in:
Miniding 2026-05-05 19:26:00 +02:00 committed by Teknium
parent ee8edd4169
commit 0d41e94ca9
3 changed files with 28 additions and 3 deletions

View file

@ -7,7 +7,7 @@
#
# Keys are dotted paths; nesting below is purely for readability. Values may
# contain {placeholder} tokens for str.format substitution. When adding a
# new key, add it to EVERY locale file (en/zh/ja/de/es) in the same commit --
# new key, add it to EVERY locale file (en/zh/ja/de/es/fr) in the same commit --
# tests/agent/test_i18n.py asserts catalog parity.
approval:

24
locales/fr.yaml Normal file
View file

@ -0,0 +1,24 @@
# Hermes static-message catalog -- French (français)
# See locales/en.yaml for the source of truth; keep keys in sync.
approval:
dangerous_header: "⚠️ COMMANDE DANGEREUSE : {description}"
choose_long: " [o]ne fois | [s]ession | [t]oujours | [r]efuser"
choose_short: " [o]ne fois | [s]ession | [r]efuser"
prompt_long: " Choix [o/s/t/R] : "
prompt_short: " Choix [o/s/R] : "
timeout: " ⏱ Délai dépassé — commande refusée"
allowed_once: " ✓ Autorisé une fois"
allowed_session: " ✓ Autorisé pour cette session"
allowed_always: " ✓ Ajouté à la liste d'autorisation permanente"
denied: " ✗ Refusé"
cancelled: " ✗ Annulé"
blocklist_message: "Cette commande est sur la liste de blocage inconditionnel et ne peut pas être approuvée."
gateway:
approval_expired: "⚠️ Approbation expirée (l'agent n'attend plus). Demandez à l'agent de réessayer."
draining: "⏳ Vidage de {count} agent(s) actif(s) avant redémarrage..."
goal_cleared: "✓ Objectif effacé."
no_active_goal: "Aucun objectif actif."
config_read_failed: "⚠️ Impossible de lire config.yaml : {error}"
config_save_failed: "⚠️ Impossible de sauvegarder la configuration : {error}"