Aller au contenu principal

Configuration

La configuration se place dans un fichier hermes.config.js à la racine du projet. Il est lu par la CLI et par Hermes.init(). Toutes les options sont facultatives.

hermes.config.js
export default {
localesDir: 'locales',
buildDir: './.hermes',
checkTranslations: true,
keys: 'flat',
sourceLocale: null,
completeLocales: null,
fallbackChains: {
'en-GB': ['en-US', 'fr'],
'es-419': ['es-ES'],
default: ['en-US', 'en-GB'],
},
};

Options​

  • localesDir (défaut : 'locales') : dossier des fichiers de traduction.
  • buildDir (défaut : './.hermes') : dossier où le build écrit translations.json, et où init() le lit.
  • checkTranslations (défaut : true) : vérifie les traductions manquantes ou vides pendant le build.
  • keys (défaut : 'flat') : format des clés pour les fichiers imbriqués, voir ci-dessous.
  • sourceLocale (défaut : null) : langue dans laquelle tout est rédigé. Active le suivi des traductions.
  • completeLocales (défaut : null, soit toutes les langues) : langues censées contenir toutes les clés.
  • fallbackChains : langues de repli, voir ci-dessous.

Format des clés​

L'option keys choisit les séparateurs utilisés quand une langue est répartie dans des dossiers.

  • flat : des points partout.
  • path : une barre oblique entre les dossiers, un point à l'intérieur d'un fichier.
  • namespaced : une barre oblique entre les dossiers, deux-points entre le fichier et la clé.

Avec ce fichier :

locales/
en-US/
nested/
nested2.json -> { "key": "hello" }

la clé devient :

  • flat : nested.nested2.key
  • path : nested/nested2.key
  • namespaced : nested/nested2:key

Langues de repli​

fallbackChains associe à une langue la liste des langues où chercher une clé qui lui manque, dans l'ordre. Le build complète chaque langue ainsi. La chaîne default sert aux langues sans chaîne propre, et sa première langue est la langue par défaut de Hermes.init().

Sans configuration, Hermes utilise ces chaînes :

{
da: ['sv-SE', 'no'],
'en-GB': ['en-US'],
'en-US': ['en-GB'],
'es-ES': ['es-419'],
'es-419': ['es-ES'],
it: ['es-ES'],
nl: ['en-US', 'en-GB', 'de'],
no: ['sv-SE', 'da'],
fi: ['sv-SE'],
'sv-SE': ['no', 'da'],
'zh-CN': ['zh-TW'],
'zh-TW': ['zh-CN'],
default: ['en-US', 'en-GB'],
}

Langues prises en charge​

Hermes utilise les codes de langue de Discord : id, da, de, en-GB, en-US, es-ES, es-419, fr, hr, it, lt, hu, nl, no, pl, pt-BR, ro, fi, sv-SE, vi, tr, cs, el, bg, ru, uk, hi, th, zh-CN, ja, zh-TW, ko.