i18nHelpers
Fonctions utilitaires d'internationalisation (i18n)
📝Syntaxe
i18nHelpers('extractUI', sourceRoot, jsonFile)
i18nHelpers('extractErrors', sourceRoot, jsonFile)
i18nHelpers('merge', jsonFile1, jsonFile2)
i18nHelpers('sort', jsonFileA, jsonFileB)
i18nHelpers('register', moduleName, moduleRoot)
i18nHelpers('unregister', moduleName)
📥Arguments d'entrée
Paramètre Description
sourceRoot Chaîne : chemin vers l'arborescence source à analyser (fichiers C/C++ et .m, répertoires de tests exclus)
jsonFile Chaîne : chemin vers le fichier JSON de traduction de destination
jsonFile1 Chaîne : chemin vers le fichier JSON de traduction source
jsonFile2 Chaîne : chemin vers le fichier JSON de traduction de destination
jsonFileA Chaîne : chemin vers le fichier JSON source à trier
jsonFileB Chaîne : chemin vers le fichier JSON trié
moduleName Chaîne : le nom du module dont le catalogue de langue est enregistré ou retiré
moduleRoot Chaîne : le répertoire racine du module (typiquement modulepath(moduleName)), contenant locale/<moduleName>-ui-<locale>.json et locale/<moduleName>-errors-<locale>.json
📤Arguments de sortie
Paramètre Description
status Logique : pour 'register'/'unregister', vrai en cas de succès. Demander cette sortie fait remonter un statut au lieu de lever une erreur, évitant un try/catch.
message Vecteur de caractères : pour 'register'/'unregister' avec deux sorties, un message d'erreur quand status est faux, vide sinon.
📄Description

i18nHelpers fournit des fonctions utilitaires essentielles pour gérer les fichiers d'internationalisation. Les fonctions principales incluent :

- 'extractUI' : Analyse les sources soussourceRootpour en extraire les textes traduisibles de l'interface et écrit le catalogue indexé par texte dansjsonFile. L'extraction est native (aucun outil gettext requis).

- 'extractErrors' : Analyse les sources soussourceRootpour en extraire les templates d'erreur/avertissement indexés par identifiant et écrit le catalogue des erreurs dansjsonFile.

- 'merge' : Fusionne deux fichiers JSON de traduction. Les entrées dejsonFile1sont ajoutées àjsonFile2, et les entrées exclusives àjsonFile2sont supprimées.

- 'sort' : Trie et organise les entrées d'un fichier JSON de traduction. jsonFileA et jsonFileB peuvent référencer le même fichier si un tri en place est souhaité.

- 'register' : Enregistre au runtime le catalogue de langue d'un module externe, afin que ses chaînes source_()et ses templates d'erreur<moduleName>:*soient localisés. Le module fournitlocale/<moduleName>-ui-<locale>.jsonetlocale/<moduleName>-errors-<locale>.json ; le catalogue de la langue courante est fusionné immédiatement puis à chaque changement de langue. C'est un appel optionnel, typiquement placé dans leetc/startup.mdu module.

Convention d'identifiant d'erreur des modules externes. Une erreur ou un avertissement levé par un module externe doit utiliser le namespace propre du module comme préfixe d'identifiant, c.-à-d.error('<moduleName>:<mnemonic>', 'template anglais littéral', args...). Seuls les messages génériques et réutilisables dans tout Nelson gardent le préfixeNelson:(ils appartiennent au catalogue du cœur, pas au module). Pour qu'un message soit extrait et localisé :

- l'identifiant doit commencer par<moduleName>:(le nom utilisé dansmodule.jsonet comme préfixe des fichiers de catalogue) ;

- le template doit être un unique littéral de chaîne ; une partie dynamique est un indicateur de formatprintfrempli par les arguments suivants, p.ex.error('mymod:invalidInput', '%s must be a scalar logical.', name)plutôt queerror('mymod:invalidInput', [name, ' must be a scalar logical.']) ;

- chaque identifiant correspond à exactement un template (un identifiant réutilisé avec plusieurs messages différents est écarté comme surchargé). Au runtime, le littéral en ligne n'est remplacé par le template localisé que s'il correspond exactement au catalogue, puis les arguments sont appliqués. Générez les catalogues avecnmm('i18n', moduleRoot)(oungen.i18n).

- 'unregister' : Retire un catalogue de module précédemment enregistré et reconstruit les catalogues en mémoire, typiquement depuis leetc/finish.mdu module.

Cette utilité est destinée à un usage interne et peut être mise à jour au fil du temps.

🔗Voir aussi
setlanguagegetlanguage
🕔Historique des versions
Version Description
1.10.0 version initiale
2.0.0 extraction native des sources (extractUI, extractErrors) ; convert supprimé avec l'outillage gettext
Modifier cette page sur GitHub