Aller au contenu principal

Multilinguisme

Dans le model, les libelles des différentes propriétés sont ajoutés dans une langues de référence. Mais il peut arriver que ces libelles doivent être traduits, et possiblement dans les différentes couches du projet (front-end, back-end...).

Pour répondre à ce besoin, les générateurs sont capables (JPA et JS uniquement) de remplacer les libellés saisis dans le modèle par des clés de traduction, et générer les resources correspondantes dans les différentes langues désirées.

Charge ensuite au développeur de fournir au générateur des fichiers de traductions dans les différents langages cibles. Egalement reste à développer les mécanisme de traduction selon la stratégie choisie.

Paramétrer les clés générées

Les paramètres translateReferences et translateProperties permettent d'identifier quels libellés doivent être remplacés par des clés : respectivement les libellés des listes de références, et les libellés des propriétés.

Ces paramètres peuvent être ajoutés à la configuration globale de modgen, dans i18n.translateReferences et i18n.translateProperties. Dans ce cas là le paramètre est appliqué à tous les générateurs. Ils peuvent également être ajoutés à la configuration de chaque générateur. La valeur saisie surcharge alors celle de la configuration globale.

Fichiers de resources

Pour que soient générés les fichiers de resource, le paramètre resourceRootPath doit être configuré. Chaque générateur a ensuite ses spécificités, mais l'objectif est le même : générer du code permettant de faire la correspondance entre les clés et les traductions dans les différentes langues.

Traduire les libellés

Pour générer les fichiers de resources dans les langues autres que la langue de référence, modgen attend que des fichiers de propriété soient ajoutés au modèle. Ces fichiers, au format *.properties, doivent être placés dans le dossier adéquat pour que le générateur les prenne en compte. Ce dossier se paramètre avec la propriété i18n.rootPath et sa valeur par défaut est i18n/{lang}/in. Il s'agit d'un template pour les dossiers contenant les traductions entrantes.

Pour faciliter le travail de traduction, il est possible de configurer le générateur TranslationOutGen. Il permet de générer des fichiers de traductions vierges reprenant l'ensemble des traductions qui ne sont pas dans des fichiers d'entrée.

Attention : Les traductions entrantes ne sont lues qu'au lancement de la commande modgen. Le mode watch ne fonctionnera pas avec ces fichiers.

Configuration du multilinguisme

Par défaut, si le multilinguisme n'est pas configuré, les générateurs crééront tout de même les clés et les fichiers de traductions. Le générateur JSResourceGen ajoutera les fichiers de traductions à la racine du dossier resourceRootPath configuré.

En revanche, dès que plusieurs langues devront être disponible, il faudra configurer les dossiers des fichiers de traduction des différentes langues.

Dans la configuration générale, ajouter l'objet de configuration i18n contenant la propriété rootPath ainsi que langs.

i18n:
defaultLang: fr_FR # Langue par défaut de l'application
rootPath: i18n/{lang}/in # Template du dossier contenant les fichiers de traductions entrants
translateReferences: true # Si TopModel doit traduire les listes de référence ie : remplacer le libelle par la clé de traductions
translateProperties: true # Si TopModel doit traduire les propriétés ie : remplacer le libelle par la clé de traductions
langs: # Liste des langues de l'application
- en_EN
- de_DE

Avec cette configuration, TopModel cherchera tous les fichiers *.properties dans les dossiers i18n/en_EN/in et i18n/de_DE/in pour récupérer les traductions dans ces langues (en_EN, de_DE) respectives

Configuration du générateur de traductions manquantes

Se reporter à la page dédiée