Gestion traduction » Historique » Version 1
Benjamin Bohard, 02/09/2014 11:44
| 1 | 1 | Benjamin Bohard | h1. Gestion traduction |
|---|---|---|---|
| 2 | 1 | Benjamin Bohard | |
| 3 | 1 | Benjamin Bohard | h2. Besoins |
| 4 | 1 | Benjamin Bohard | |
| 5 | 1 | Benjamin Bohard | Pouvoir mettre à jour les fichiers de traduction distribués dans les paquets. |
| 6 | 1 | Benjamin Bohard | |
| 7 | 1 | Benjamin Bohard | h2. Procédures |
| 8 | 1 | Benjamin Bohard | |
| 9 | 1 | Benjamin Bohard | Les fichiers de traduction sont installés sous forme compilée (*.mo). |
| 10 | 1 | Benjamin Bohard | Ces fichiers compilés ne sont pas éditables directement. |
| 11 | 1 | Benjamin Bohard | Ils sont générés à partir de fichiers texte (*.po). |
| 12 | 1 | Benjamin Bohard | |
| 13 | 1 | Benjamin Bohard | La mise à jour des fichiers de traduction est faite en trois étapes : |
| 14 | 1 | Benjamin Bohard | # extraction des chaînes de caractères à traduire dans un ensemble de fichiers (création ou mise à jour des fichiers .po), |
| 15 | 1 | Benjamin Bohard | # édition des fichiers .po, |
| 16 | 1 | Benjamin Bohard | # compilation des fichiers .mo à partir des fichiers .po. |
| 17 | 1 | Benjamin Bohard | |
| 18 | 1 | Benjamin Bohard | L'extraction des chaînes de caractères à traduire est possible par l'emploi de la commande xgettext (également conseillée par l'auteur de pygettext depuis qu'elle gère le code python). |
| 19 | 1 | Benjamin Bohard | Le passage des .po aux .mo et inversement est possible par l'emploi des commandes msgfmt et msgunfmt réciproquement. |
| 20 | 1 | Benjamin Bohard | |
| 21 | 1 | Benjamin Bohard | Les fichiers .po et .mo sont redondants et il n'est pas nécessaire de conservés les deux dans les dépôts. |
| 22 | 1 | Benjamin Bohard | Les fichiers .mo ne sont utiles que pour l'exécution des programmes traduits et les fichiers .po sont plus facilement exploitables dans un contexte de dépôt git. |
| 23 | 1 | Benjamin Bohard | |
| 24 | 1 | Benjamin Bohard | h2. Implémentation |
| 25 | 1 | Benjamin Bohard | |
| 26 | 1 | Benjamin Bohard | Les dépôts mettant actuellement en place une gestion de la traduction sont : |
| 27 | 1 | Benjamin Bohard | * eole-sso ; |
| 28 | 1 | Benjamin Bohard | * eoleflask-aaa ; |
| 29 | 1 | Benjamin Bohard | * eole-bacula ; |
| 30 | 1 | Benjamin Bohard | * zephir-client ; |
| 31 | 1 | Benjamin Bohard | * python-pyeole ; |
| 32 | 1 | Benjamin Bohard | * ead ; |
| 33 | 1 | Benjamin Bohard | * creole ; |
| 34 | 1 | Benjamin Bohard | * tiramisu. |
| 35 | 1 | Benjamin Bohard | |
| 36 | 1 | Benjamin Bohard | L'idée retenue dans l'ead, eole-sso, est l'inclusion du fichier .po dans le dépôt avec un script permettant de générer le .mo. |
| 37 | 1 | Benjamin Bohard | Dans le cas de l'ead, le .po et le script sont installés (ils sont placés dans le répertoire i18n qui est installé de manière globale). |
| 38 | 1 | Benjamin Bohard | Dans le cas de eole-sso, le .po et le script ne sont pas installés ; seul le .mo est dans un répertoire installé. |
| 39 | 1 | Benjamin Bohard | Dans les deux cas, le script générant les .mo n'est pas lancé automatiquement. |
| 40 | 1 | Benjamin Bohard | |
| 41 | 1 | Benjamin Bohard | Dans eoleflask-aaa, le fichier .po (et un fichier .pot) est dans un répertoire translations mais aucun dispositif ne semble en place pour compiler le .mo. |
| 42 | 1 | Benjamin Bohard | |
| 43 | 1 | Benjamin Bohard | Dans eole-bacula, le .po est celui de bacula recompilé. |
| 44 | 1 | Benjamin Bohard | L'ensemble du dossier lang est installé (.po, script pour compilé le .mo et .mo). |
| 45 | 1 | Benjamin Bohard | Le script ne gère pas la mise à jour des fichiers .po et doit être lancé manuellement. |
| 46 | 1 | Benjamin Bohard | |
| 47 | 1 | Benjamin Bohard | Zephir-client dispose d'une cible dans le Makefile situé dans data/monitor pour générer le .mo à partir du .po et d'une cible pour extraire les chaînes de caractères. |
| 48 | 1 | Benjamin Bohard | |
| 49 | 1 | Benjamin Bohard | Python-pyeole lance la commande msgfmt dans le setup.py qui assure la compilation des .mo. |
| 50 | 1 | Benjamin Bohard | |
| 51 | 1 | Benjamin Bohard | Tiramisu dispose de trois cibles (utilisées dans le .PHONY) dans le Makefile pour extraire les chaînes de caractères, compiler les .mo et les installer. |