i18nHelpers('extractUI', sourceRoot, jsonFile)
i18nHelpers('extractErrors', sourceRoot, jsonFile)
i18nHelpers('merge', jsonFile1, jsonFile2)
i18nHelpers('sort', jsonFileA, jsonFileB)
i18nHelpers('register', moduleName, moduleRoot)
i18nHelpers('unregister', moduleName)
| 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 |
| 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. |
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.
| Version | Description |
|---|---|
| 1.10.0 | version initiale |
| 2.0.0 | extraction native des sources (extractUI, extractErrors) ; convert supprimé avec l'outillage gettext |