From f49b5e632efe4823d8af838241c47672edad8fdc Mon Sep 17 00:00:00 2001 From: Dmytro Honcharenko Date: Mon, 11 May 2026 19:26:24 +0300 Subject: [PATCH] feat(fr-fr): add French localization Co-authored-by: Cursor --- locale/fr-fr/dialog/action_not_confirmed.dialog | 1 + locale/fr-fr/dialog/already_requiring.dialog | 1 + locale/fr-fr/dialog/already_skipping.dialog | 1 + locale/fr-fr/dialog/ask_disable_ww.dialog | 1 + locale/fr-fr/dialog/ask_exit_shutdown.dialog | 1 + locale/fr-fr/dialog/ask_start_requiring.dialog | 1 + locale/fr-fr/dialog/ask_start_skipping.dialog | 1 + locale/fr-fr/dialog/confirm_brain_disabled.dialog | 1 + locale/fr-fr/dialog/confirm_brain_enabled.dialog | 1 + locale/fr-fr/dialog/confirm_cancel.dialog | 1 + locale/fr-fr/dialog/confirm_exiting.dialog | 1 + locale/fr-fr/dialog/confirm_listening_disabled.dialog | 1 + locale/fr-fr/dialog/confirm_listening_enabled.dialog | 1 + locale/fr-fr/dialog/confirm_require_ww.dialog | 1 + locale/fr-fr/dialog/confirm_restarting.dialog | 1 + locale/fr-fr/dialog/confirm_shutdown.dialog | 1 + locale/fr-fr/dialog/confirm_skip_ww.dialog | 1 + locale/fr-fr/dialog/confirm_ww_changed.dialog | 1 + locale/fr-fr/dialog/confirm_ww_changing.dialog | 1 + locale/fr-fr/dialog/confirm_ww_disabled.dialog | 1 + locale/fr-fr/dialog/error_invalid_ww_requested.dialog | 1 + locale/fr-fr/dialog/error_no_ww_api.dialog | 1 + locale/fr-fr/dialog/error_no_ww_heard.dialog | 1 + locale/fr-fr/dialog/error_ww_already_enabled.dialog | 1 + locale/fr-fr/dialog/error_ww_change_failed.dialog | 1 + locale/fr-fr/dialog/not_doing_anything.dialog | 1 + locale/fr-fr/dialog/word_confirm.dialog | 1 + locale/fr-fr/intent/exit.intent | 1 + locale/fr-fr/intent/restart.intent | 2 ++ locale/fr-fr/intent/shutdown.intent | 4 ++++ locale/fr-fr/regex/wakeword.rx | 1 + locale/fr-fr/vocab/cancel.voc | 6 ++++++ locale/fr-fr/vocab/change.voc | 5 +++++ locale/fr-fr/vocab/debug.voc | 7 +++++++ locale/fr-fr/vocab/disable.voc | 3 +++ locale/fr-fr/vocab/enable.voc | 2 ++ locale/fr-fr/vocab/exit.voc | 2 ++ locale/fr-fr/vocab/listening.voc | 10 ++++++++++ locale/fr-fr/vocab/mycroft.voc | 4 ++++ locale/fr-fr/vocab/neon.voc | 4 ++++ locale/fr-fr/vocab/request.voc | 4 ++++ locale/fr-fr/vocab/restart.voc | 2 ++ locale/fr-fr/vocab/shutdown.voc | 2 ++ locale/fr-fr/vocab/solo.voc | 1 + locale/fr-fr/vocab/start.voc | 4 ++++ locale/fr-fr/vocab/start_sww.voc | 4 ++++ locale/fr-fr/vocab/stop.voc | 4 ++++ locale/fr-fr/vocab/stop_sww.voc | 8 ++++++++ locale/fr-fr/vocab/ww.voc | 9 +++++++++ test/test_resources.yaml | 1 + 50 files changed, 117 insertions(+) create mode 100644 locale/fr-fr/dialog/action_not_confirmed.dialog create mode 100644 locale/fr-fr/dialog/already_requiring.dialog create mode 100644 locale/fr-fr/dialog/already_skipping.dialog create mode 100644 locale/fr-fr/dialog/ask_disable_ww.dialog create mode 100644 locale/fr-fr/dialog/ask_exit_shutdown.dialog create mode 100644 locale/fr-fr/dialog/ask_start_requiring.dialog create mode 100644 locale/fr-fr/dialog/ask_start_skipping.dialog create mode 100644 locale/fr-fr/dialog/confirm_brain_disabled.dialog create mode 100644 locale/fr-fr/dialog/confirm_brain_enabled.dialog create mode 100644 locale/fr-fr/dialog/confirm_cancel.dialog create mode 100644 locale/fr-fr/dialog/confirm_exiting.dialog create mode 100644 locale/fr-fr/dialog/confirm_listening_disabled.dialog create mode 100644 locale/fr-fr/dialog/confirm_listening_enabled.dialog create mode 100644 locale/fr-fr/dialog/confirm_require_ww.dialog create mode 100644 locale/fr-fr/dialog/confirm_restarting.dialog create mode 100644 locale/fr-fr/dialog/confirm_shutdown.dialog create mode 100644 locale/fr-fr/dialog/confirm_skip_ww.dialog create mode 100644 locale/fr-fr/dialog/confirm_ww_changed.dialog create mode 100644 locale/fr-fr/dialog/confirm_ww_changing.dialog create mode 100644 locale/fr-fr/dialog/confirm_ww_disabled.dialog create mode 100644 locale/fr-fr/dialog/error_invalid_ww_requested.dialog create mode 100644 locale/fr-fr/dialog/error_no_ww_api.dialog create mode 100644 locale/fr-fr/dialog/error_no_ww_heard.dialog create mode 100644 locale/fr-fr/dialog/error_ww_already_enabled.dialog create mode 100644 locale/fr-fr/dialog/error_ww_change_failed.dialog create mode 100644 locale/fr-fr/dialog/not_doing_anything.dialog create mode 100644 locale/fr-fr/dialog/word_confirm.dialog create mode 100644 locale/fr-fr/intent/exit.intent create mode 100644 locale/fr-fr/intent/restart.intent create mode 100644 locale/fr-fr/intent/shutdown.intent create mode 100644 locale/fr-fr/regex/wakeword.rx create mode 100644 locale/fr-fr/vocab/cancel.voc create mode 100644 locale/fr-fr/vocab/change.voc create mode 100644 locale/fr-fr/vocab/debug.voc create mode 100644 locale/fr-fr/vocab/disable.voc create mode 100644 locale/fr-fr/vocab/enable.voc create mode 100644 locale/fr-fr/vocab/exit.voc create mode 100644 locale/fr-fr/vocab/listening.voc create mode 100644 locale/fr-fr/vocab/mycroft.voc create mode 100644 locale/fr-fr/vocab/neon.voc create mode 100644 locale/fr-fr/vocab/request.voc create mode 100644 locale/fr-fr/vocab/restart.voc create mode 100644 locale/fr-fr/vocab/shutdown.voc create mode 100644 locale/fr-fr/vocab/solo.voc create mode 100644 locale/fr-fr/vocab/start.voc create mode 100644 locale/fr-fr/vocab/start_sww.voc create mode 100644 locale/fr-fr/vocab/stop.voc create mode 100644 locale/fr-fr/vocab/stop_sww.voc create mode 100644 locale/fr-fr/vocab/ww.voc diff --git a/locale/fr-fr/dialog/action_not_confirmed.dialog b/locale/fr-fr/dialog/action_not_confirmed.dialog new file mode 100644 index 0000000..66c5661 --- /dev/null +++ b/locale/fr-fr/dialog/action_not_confirmed.dialog @@ -0,0 +1 @@ +Veuillez réessayer. L'action n'a pas été confirmée. diff --git a/locale/fr-fr/dialog/already_requiring.dialog b/locale/fr-fr/dialog/already_requiring.dialog new file mode 100644 index 0000000..a11e222 --- /dev/null +++ b/locale/fr-fr/dialog/already_requiring.dialog @@ -0,0 +1 @@ +Il semble que je sois déjà en mode mot de réveil. diff --git a/locale/fr-fr/dialog/already_skipping.dialog b/locale/fr-fr/dialog/already_skipping.dialog new file mode 100644 index 0000000..40266b9 --- /dev/null +++ b/locale/fr-fr/dialog/already_skipping.dialog @@ -0,0 +1 @@ +Il semble que j'ignore déjà les mots de réveil. diff --git a/locale/fr-fr/dialog/ask_disable_ww.dialog b/locale/fr-fr/dialog/ask_disable_ww.dialog new file mode 100644 index 0000000..bd2b549 --- /dev/null +++ b/locale/fr-fr/dialog/ask_disable_ww.dialog @@ -0,0 +1 @@ +Souhaitez-vous désactiver le mot de réveil {{ww}} ? diff --git a/locale/fr-fr/dialog/ask_exit_shutdown.dialog b/locale/fr-fr/dialog/ask_exit_shutdown.dialog new file mode 100644 index 0000000..750e5cd --- /dev/null +++ b/locale/fr-fr/dialog/ask_exit_shutdown.dialog @@ -0,0 +1 @@ +Êtes-vous sûr de vouloir {{action}} ? Si oui, dites « allez-y {{number}} » pour continuer ou dites « peu importe » pour annuler. diff --git a/locale/fr-fr/dialog/ask_start_requiring.dialog b/locale/fr-fr/dialog/ask_start_requiring.dialog new file mode 100644 index 0000000..965af2f --- /dev/null +++ b/locale/fr-fr/dialog/ask_start_requiring.dialog @@ -0,0 +1 @@ +Dois-je commencer à exiger des mots de réveil ? diff --git a/locale/fr-fr/dialog/ask_start_skipping.dialog b/locale/fr-fr/dialog/ask_start_skipping.dialog new file mode 100644 index 0000000..ee47882 --- /dev/null +++ b/locale/fr-fr/dialog/ask_start_skipping.dialog @@ -0,0 +1 @@ +Dois-je commencer à ignorer les mots de réveil ? diff --git a/locale/fr-fr/dialog/confirm_brain_disabled.dialog b/locale/fr-fr/dialog/confirm_brain_disabled.dialog new file mode 100644 index 0000000..8408bbf --- /dev/null +++ b/locale/fr-fr/dialog/confirm_brain_disabled.dialog @@ -0,0 +1 @@ +Masquage du cerveau Neon. diff --git a/locale/fr-fr/dialog/confirm_brain_enabled.dialog b/locale/fr-fr/dialog/confirm_brain_enabled.dialog new file mode 100644 index 0000000..d36e283 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_brain_enabled.dialog @@ -0,0 +1 @@ +Lancement du cerveau Neon. diff --git a/locale/fr-fr/dialog/confirm_cancel.dialog b/locale/fr-fr/dialog/confirm_cancel.dialog new file mode 100644 index 0000000..0420107 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_cancel.dialog @@ -0,0 +1 @@ +Ravi de rester avec vous. diff --git a/locale/fr-fr/dialog/confirm_exiting.dialog b/locale/fr-fr/dialog/confirm_exiting.dialog new file mode 100644 index 0000000..d709e0d --- /dev/null +++ b/locale/fr-fr/dialog/confirm_exiting.dialog @@ -0,0 +1 @@ +J'espère vous revoir bientôt. Au revoir. diff --git a/locale/fr-fr/dialog/confirm_listening_disabled.dialog b/locale/fr-fr/dialog/confirm_listening_disabled.dialog new file mode 100644 index 0000000..57b390a --- /dev/null +++ b/locale/fr-fr/dialog/confirm_listening_disabled.dialog @@ -0,0 +1 @@ +Je cesserai d'émettre un son lorsque j'entendrai mon mot de réveil. diff --git a/locale/fr-fr/dialog/confirm_listening_enabled.dialog b/locale/fr-fr/dialog/confirm_listening_enabled.dialog new file mode 100644 index 0000000..7a2039c --- /dev/null +++ b/locale/fr-fr/dialog/confirm_listening_enabled.dialog @@ -0,0 +1 @@ +Je sonnerai lorsque j'entendrai mon mot de réveil. diff --git a/locale/fr-fr/dialog/confirm_require_ww.dialog b/locale/fr-fr/dialog/confirm_require_ww.dialog new file mode 100644 index 0000000..5b77ef0 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_require_ww.dialog @@ -0,0 +1 @@ +D'accord, je passe en mode mots de réveil. diff --git a/locale/fr-fr/dialog/confirm_restarting.dialog b/locale/fr-fr/dialog/confirm_restarting.dialog new file mode 100644 index 0000000..c5e27b0 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_restarting.dialog @@ -0,0 +1 @@ +Redémarrage en cours. Cela peut prendre quelques minutes. diff --git a/locale/fr-fr/dialog/confirm_shutdown.dialog b/locale/fr-fr/dialog/confirm_shutdown.dialog new file mode 100644 index 0000000..6881155 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_shutdown.dialog @@ -0,0 +1 @@ +Arrêt en cours. Au revoir. diff --git a/locale/fr-fr/dialog/confirm_skip_ww.dialog b/locale/fr-fr/dialog/confirm_skip_ww.dialog new file mode 100644 index 0000000..feec752 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_skip_ww.dialog @@ -0,0 +1 @@ +D'accord, je commence à ignorer les mots de réveil. diff --git a/locale/fr-fr/dialog/confirm_ww_changed.dialog b/locale/fr-fr/dialog/confirm_ww_changed.dialog new file mode 100644 index 0000000..109262e --- /dev/null +++ b/locale/fr-fr/dialog/confirm_ww_changed.dialog @@ -0,0 +1 @@ +D'accord, je vais commencer à écouter « {{wake_word}} ». diff --git a/locale/fr-fr/dialog/confirm_ww_changing.dialog b/locale/fr-fr/dialog/confirm_ww_changing.dialog new file mode 100644 index 0000000..75ae2a1 --- /dev/null +++ b/locale/fr-fr/dialog/confirm_ww_changing.dialog @@ -0,0 +1 @@ +Un instant, je procède à cette modification. diff --git a/locale/fr-fr/dialog/confirm_ww_disabled.dialog b/locale/fr-fr/dialog/confirm_ww_disabled.dialog new file mode 100644 index 0000000..8891a0f --- /dev/null +++ b/locale/fr-fr/dialog/confirm_ww_disabled.dialog @@ -0,0 +1 @@ +D'accord, je vais arrêter d'écouter « {{ww}} ». diff --git a/locale/fr-fr/dialog/error_invalid_ww_requested.dialog b/locale/fr-fr/dialog/error_invalid_ww_requested.dialog new file mode 100644 index 0000000..91cf41f --- /dev/null +++ b/locale/fr-fr/dialog/error_invalid_ww_requested.dialog @@ -0,0 +1 @@ +Désolé, je ne connais pas le mot de réveil : « {{requested_ww}} ». diff --git a/locale/fr-fr/dialog/error_no_ww_api.dialog b/locale/fr-fr/dialog/error_no_ww_api.dialog new file mode 100644 index 0000000..df0abca --- /dev/null +++ b/locale/fr-fr/dialog/error_no_ww_api.dialog @@ -0,0 +1 @@ +Désolé, cet appareil ne prend pas encore en charge le changement de mots de réveil. diff --git a/locale/fr-fr/dialog/error_no_ww_heard.dialog b/locale/fr-fr/dialog/error_no_ww_heard.dialog new file mode 100644 index 0000000..5b86a80 --- /dev/null +++ b/locale/fr-fr/dialog/error_no_ww_heard.dialog @@ -0,0 +1 @@ +Désolé, je n'ai pas entendu de mot de réveil dans votre demande. Veuillez réessayer. diff --git a/locale/fr-fr/dialog/error_ww_already_enabled.dialog b/locale/fr-fr/dialog/error_ww_already_enabled.dialog new file mode 100644 index 0000000..3c95e38 --- /dev/null +++ b/locale/fr-fr/dialog/error_ww_already_enabled.dialog @@ -0,0 +1 @@ +J'utilise déjà le mot de réveil : « {{requested_ww}} ». diff --git a/locale/fr-fr/dialog/error_ww_change_failed.dialog b/locale/fr-fr/dialog/error_ww_change_failed.dialog new file mode 100644 index 0000000..78a58df --- /dev/null +++ b/locale/fr-fr/dialog/error_ww_change_failed.dialog @@ -0,0 +1 @@ +Désolé, quelque chose s'est mal passé. Je vais continuer à utiliser l'ancien mot de réveil. diff --git a/locale/fr-fr/dialog/not_doing_anything.dialog b/locale/fr-fr/dialog/not_doing_anything.dialog new file mode 100644 index 0000000..a453ec9 --- /dev/null +++ b/locale/fr-fr/dialog/not_doing_anything.dialog @@ -0,0 +1 @@ +D'accord, je ne fais rien. diff --git a/locale/fr-fr/dialog/word_confirm.dialog b/locale/fr-fr/dialog/word_confirm.dialog new file mode 100644 index 0000000..377e4cb --- /dev/null +++ b/locale/fr-fr/dialog/word_confirm.dialog @@ -0,0 +1 @@ +allez-y diff --git a/locale/fr-fr/intent/exit.intent b/locale/fr-fr/intent/exit.intent new file mode 100644 index 0000000..3fdbd2a --- /dev/null +++ b/locale/fr-fr/intent/exit.intent @@ -0,0 +1 @@ +quitter diff --git a/locale/fr-fr/intent/restart.intent b/locale/fr-fr/intent/restart.intent new file mode 100644 index 0000000..496a95f --- /dev/null +++ b/locale/fr-fr/intent/restart.intent @@ -0,0 +1,2 @@ +redémarrer +redémarrage diff --git a/locale/fr-fr/intent/shutdown.intent b/locale/fr-fr/intent/shutdown.intent new file mode 100644 index 0000000..c44ee0f --- /dev/null +++ b/locale/fr-fr/intent/shutdown.intent @@ -0,0 +1,4 @@ +arrêter +arrêt +éteindre +mettre (hors tension|hors service) diff --git a/locale/fr-fr/regex/wakeword.rx b/locale/fr-fr/regex/wakeword.rx new file mode 100644 index 0000000..06d96aa --- /dev/null +++ b/locale/fr-fr/regex/wakeword.rx @@ -0,0 +1 @@ +(comme|en tant que|à) (?P.*) diff --git a/locale/fr-fr/vocab/cancel.voc b/locale/fr-fr/vocab/cancel.voc new file mode 100644 index 0000000..679da17 --- /dev/null +++ b/locale/fr-fr/vocab/cancel.voc @@ -0,0 +1,6 @@ +non +non merci +pas du tout +peu importe +laisser tomber +annuler diff --git a/locale/fr-fr/vocab/change.voc b/locale/fr-fr/vocab/change.voc new file mode 100644 index 0000000..601134c --- /dev/null +++ b/locale/fr-fr/vocab/change.voc @@ -0,0 +1,5 @@ +changer +modifier +mettre à jour +définir +faire diff --git a/locale/fr-fr/vocab/debug.voc b/locale/fr-fr/vocab/debug.voc new file mode 100644 index 0000000..3caa431 --- /dev/null +++ b/locale/fr-fr/vocab/debug.voc @@ -0,0 +1,7 @@ +cerveau neon +fenêtre de débogage +fenêtre de déboguage +vue de débogage +vue de déboguage +affichage de débogage +affichage de déboguage diff --git a/locale/fr-fr/vocab/disable.voc b/locale/fr-fr/vocab/disable.voc new file mode 100644 index 0000000..4853372 --- /dev/null +++ b/locale/fr-fr/vocab/disable.voc @@ -0,0 +1,3 @@ +désactiver +éteindre +quitter diff --git a/locale/fr-fr/vocab/enable.voc b/locale/fr-fr/vocab/enable.voc new file mode 100644 index 0000000..23f2e8e --- /dev/null +++ b/locale/fr-fr/vocab/enable.voc @@ -0,0 +1,2 @@ +activer +allumer diff --git a/locale/fr-fr/vocab/exit.voc b/locale/fr-fr/vocab/exit.voc new file mode 100644 index 0000000..cd92a74 --- /dev/null +++ b/locale/fr-fr/vocab/exit.voc @@ -0,0 +1,2 @@ +quitter + diff --git a/locale/fr-fr/vocab/listening.voc b/locale/fr-fr/vocab/listening.voc new file mode 100644 index 0000000..d710043 --- /dev/null +++ b/locale/fr-fr/vocab/listening.voc @@ -0,0 +1,10 @@ +confirmation d'écoute +confirmation d'enregistrement +confirmations d'écoute +confirmations d'enregistrement +son d'écoute +son d'enregistrement +son de confirmation +sons d'écoute +sons d'enregistrement +sons de confirmation diff --git a/locale/fr-fr/vocab/mycroft.voc b/locale/fr-fr/vocab/mycroft.voc new file mode 100644 index 0000000..a52921e --- /dev/null +++ b/locale/fr-fr/vocab/mycroft.voc @@ -0,0 +1,4 @@ +mycroft +microsoft +minecraft +my craft diff --git a/locale/fr-fr/vocab/neon.voc b/locale/fr-fr/vocab/neon.voc new file mode 100644 index 0000000..cd7c521 --- /dev/null +++ b/locale/fr-fr/vocab/neon.voc @@ -0,0 +1,4 @@ +neon +nyan +leon +haney on diff --git a/locale/fr-fr/vocab/request.voc b/locale/fr-fr/vocab/request.voc new file mode 100644 index 0000000..2918795 --- /dev/null +++ b/locale/fr-fr/vocab/request.voc @@ -0,0 +1,4 @@ +je veux que tu +j'ai besoin que tu +tu dois +s'il vous plaît diff --git a/locale/fr-fr/vocab/restart.voc b/locale/fr-fr/vocab/restart.voc new file mode 100644 index 0000000..496a95f --- /dev/null +++ b/locale/fr-fr/vocab/restart.voc @@ -0,0 +1,2 @@ +redémarrer +redémarrage diff --git a/locale/fr-fr/vocab/shutdown.voc b/locale/fr-fr/vocab/shutdown.voc new file mode 100644 index 0000000..c2f2d47 --- /dev/null +++ b/locale/fr-fr/vocab/shutdown.voc @@ -0,0 +1,2 @@ +arrêter +arrêt diff --git a/locale/fr-fr/vocab/solo.voc b/locale/fr-fr/vocab/solo.voc new file mode 100644 index 0000000..09dfa40 --- /dev/null +++ b/locale/fr-fr/vocab/solo.voc @@ -0,0 +1 @@ +mode solo diff --git a/locale/fr-fr/vocab/start.voc b/locale/fr-fr/vocab/start.voc new file mode 100644 index 0000000..47d1410 --- /dev/null +++ b/locale/fr-fr/vocab/start.voc @@ -0,0 +1,4 @@ +commencer +débuter +permettre +entrer diff --git a/locale/fr-fr/vocab/start_sww.voc b/locale/fr-fr/vocab/start_sww.voc new file mode 100644 index 0000000..b7320d1 --- /dev/null +++ b/locale/fr-fr/vocab/start_sww.voc @@ -0,0 +1,4 @@ +ignorer +commencer à ignorer +permettre d'ignorer +débuter l'ignorance diff --git a/locale/fr-fr/vocab/stop.voc b/locale/fr-fr/vocab/stop.voc new file mode 100644 index 0000000..a535f11 --- /dev/null +++ b/locale/fr-fr/vocab/stop.voc @@ -0,0 +1,4 @@ +arrêter +fin +quitter +refuser diff --git a/locale/fr-fr/vocab/stop_sww.voc b/locale/fr-fr/vocab/stop_sww.voc new file mode 100644 index 0000000..21dcc48 --- /dev/null +++ b/locale/fr-fr/vocab/stop_sww.voc @@ -0,0 +1,8 @@ +arrêter d'ignorer +quitter le mode ignorance +refuser d'ignorer +fin d'ignorance +exiger +utiliser +commencer à utiliser +commencer à exiger diff --git a/locale/fr-fr/vocab/ww.voc b/locale/fr-fr/vocab/ww.voc new file mode 100644 index 0000000..e248a78 --- /dev/null +++ b/locale/fr-fr/vocab/ww.voc @@ -0,0 +1,9 @@ +mot de réveil +mots de réveil +mot d'éveil +mots d'éveil +mot-clé de réveil +mots-clés de réveil +mot de wake +mots de wake +réveil vocal diff --git a/test/test_resources.yaml b/test/test_resources.yaml index 9cb897a..cc6dc55 100644 --- a/test/test_resources.yaml +++ b/test/test_resources.yaml @@ -4,6 +4,7 @@ languages: - "en-us" - "uk-ua" + - "fr-fr" # vocab is lowercase .voc file basenames vocab: