-
Notifications
You must be signed in to change notification settings - Fork 0
Extraire, traduire et empaqueter les messages
goblin-nabu contient un service d'application qui fonctionne en ligne de commande.
Cette application permet d'extraire les messages d'une ou plusieurs applications goblin, d'importer les messages sur un serveur nabu-thrall, et finalement de produire des fichiers JSON pour le traducteur, et pour le développeur.
Les traductions peuvent être ensuite réimportée une fois le fichier JSON complété.
On peut alors produire le fichier de ressource pour chaque application, contenant le cache des traductions.
Voir l'application nabu-tools
dans le bundle goblin.
Il est important de faire le processus dans l'ordre suivant :
extraction
→ (on donne au traducteur) → extraction
→ traduction
→ packing
On peut répéter ce processus au fil du développement.
Pour effectuer les commandes suivantes, positionnez-vous dans le dossier du bundle goblin avec votre shell 🐚 préféré.
Pour créer les fichiers [appName]
à la racine du bundle :
node . --app=nabu-tools --extract
-
[AppName].json
fichier à compléter pour le traducteur -
dev-[AppName].json
fichier de debug pour contrôler le travail de l'extracteur
Transmettez le fichier de traduction au traducteur et attendez son retour.
Effectuez cette étape une fois que le traducteur a complété le fichier [AppName].json
. Les commandes suivantes vont reprendre le fichier à la racine du bundle.
node . --app=nabu-tools --extract
Comme vous pouvez le voir ici, on refait une extraction. En effet, il n'est pas instantané pour un traducteur d'effectuer toutes les traductions. Certainement que le code source de votre projet continue d'évoluer en même temps (nouveaux messages à traduire et des messages supprimés). L'extraction va mettre à jour le fichier que le traducteur a complété.
Le fichier du traducteur peut être qu'un sous-ensemble de toutes les traductions. Le contenu de ce fichier est utilisé pour surcharger les messages qui existent déjà sur le serveur de traductions.
Il est important de vérifier (git diff
) les changements à ce moment-là. Vous pouvez alors effectuer quelques ajustements au cas où le traducteur aurait fait des erreurs mineures comme avoir gardé les contextes Nabu dans la traduction.
node . --app=nabu-tools --translate
Les traductions complétées seront ajoutées sur le serveur de traductions et disponible pour la création des fichiers de cache (pack).
Vous pouvez alors (re)construire les fichiers translations.json
dans les dossiers de ressources de chaque application.
node . --app=nabu-tools --pack
Il est formellement interdit de directement modifier les fichiers translations.json
qui sont contenus dans les dossiers de ressource des applications. Le traducteur doit forcément adapter le fichier [AppName].json
situé à la racine du bundle goblin, ou alors utiliser l'interface graphique Nabu en travaillant avec le serveur nabu-thrall.
Lorsque les nabu-tools sont utilisés avec plusieurs applications, il faut prêter attention au cas où une traduction existe de part et d'autre. Si un texte source existe dans plusieurs [AppName].json
un problème peut survenir. Lorsque la première application effectue son extraction, elle va patcher le message sur le serveur avec ses traductions associées. Lorsque la seconde application va procéder également à son extraction, elle va aussi patcher ce même message. À tour de rôle, le message sur le serveur nabu-thrall change au fil des extractions. Le seul moyen aujourd'hui d'éviter ce problème est d'être sûr d'avoir exactement les mêmes traductions dans tous les fichiers [AppName].json
de toutes les applications.
Évidement, ce n'est pas acceptable et ce problème sera corrigé prochainement. L'idée est de détecter les collisions avant d'envoyer les messages au serveur nabu-thrall. Ainsi, il serait possible d'avertir l'utilisateur qu'il y a un conflit et de lui proposer de le régler en lui demandant depuis quelle application les traductions en question doivent être prisent. Si le choix n'est pas possible, la solution est alors d'introduir un context Nabu dans le texte source ; ce qui permet d'avoir des traductions différentes pour des sources identiques.