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. |