Skip to main content

Multilinguisme

Dans le modèle, vous pouvez renseigner des libellés pour les propriétés et les valeurs d'enums ou de listes de référence. Dans une application monolingue, ces libellés peuvent être utilisés directement dans le code généré. En revanche, dès lors que votre application doit prendre en charge plusieurs langues, ils doivent toutefois être traduits.

TopModel considère que la langue utilisée dans le modèle est la langue par défaut, que vous pouvez considérer comme étant la langue principale de votre application, ou encore la langue de développement. Pour gérer des langues supplémentaires, vous pourrez fournir des fichiers de traductions complémentaires.

Fichiers de ressources générés​

Chaque configuration de générateur définit les propriétés translateReferences et translateProperties, qui permettent d'identifier les libellés à remplacer par des clés de traduction : respectivement ceux des listes de référence et ceux des propriétés.

Les fichiers de ressources correspondants sont générés pour chaque langue configurée, selon les possibilités du générateur.

Remarque : Une propriété d'alias utilise la même clé de traduction que sa propriété originale, sauf si elle redéfinit son libellé : dans ce cas, une nouvelle clé de traduction sera définie.

Configuration globale​

La configuration du multilinguisme se fait dans la section i18n de la configuration TopModel :

i18n:
defaultLang: fr_FR # Langue par défaut de l'application
rootPath: i18n/{lang}/in # Modèle de chemin des fichiers de traductions entrants (voir plus bas)
translateReferences: true # Remplace les libellés des listes de référence par des clés de traduction
translateProperties: true # Remplace les libellés des propriétés par des clés de traduction
allowPropertyLabelFallback: true # Utilise le nom de la propriété comme libellé dans le code généré si la propriété n'a pas de libellé
langs: # Liste des autres langues de l'application
- en_EN
- de_DE

Quelques remarques :

  • translateReferences et translateProperties contrôlent la valeur par défaut de ces mêmes propriétés dans chaque configuration de générateur. Elles valent toutes les deux true par défaut, qu'il y ait des langues configurées ou non. TopModel génère donc par défaut des clés de traduction et des fichiers de ressources, même pour une application monolingue.
  • defaultLang contrôle la langue par défaut :
    • Renseigner "", qui est la valeur par défaut, revient à dire que la langue par défaut n'est pas nommée, ce qui correspond à une application monolingue.
    • Renseigner null permet de désactiver la valeur par défaut, ce qui permet de n'utiliser que les langues renseignées dans langs dans l'application. Les libellés définis dans le modèle ne sont donc pas utilisés dans le code généré car ils ne correspondent à aucune langue.

Fichiers de traductions entrants​

Pour générer les fichiers de ressources dans les langues autres que la langue de référence, modgen attend des fichiers de propriétés ajoutés au modèle. Ces fichiers, au format *.properties, doivent être placés dans le dossier configuré par i18n.rootPath afin d'être pris en compte. Cette propriété est un modèle de chemin contenant la variable {lang}, et sa valeur par défaut est i18n/{lang}/in.

Pour faciliter le travail de traduction, vous pouvez configurer le générateur TranslationOutGen. Il génère, pour chaque langue, des fichiers d'exemple de traductions qui listent chaque clé de traduction manquante dans les fichiers d'entrée, avec la valeur renseignée dans le modèle.

Attention : Les traductions entrantes ne sont lues qu'au lancement de la commande modgen. Le mode watch ne détecte pas leurs modifications ; relancez la commande après avoir modifié un fichier .properties.

Configuration du générateur de traductions manquantes​

Consultez la page dédiée.