author | Julien Jehannet <Julien Jehannet <julien.jehannet@logilab.fr>> |
Tue, 02 Mar 2010 21:48:36 +0100 | |
branch | stable |
changeset 4783 | 6dc34d4cf892 |
parent 1898 | 39b37f90a8a4 |
permissions | -rw-r--r-- |
0 | 1 |
Internationalisation |
2 |
==================== |
|
3 |
||
4 |
Le systme d'internationalisation de l'interface web d'cubicweb est bas sur le |
|
5 |
systme `GNU gettext`_. |
|
6 |
||
7 |
.. _`GNU gettext`: http://www.gnu.org/software/gettext/ |
|
8 |
||
9 |
Messages internationaliser |
|
10 |
---------------------------- |
|
11 |
||
12 |
Marquage des messages internaliser |
|
13 |
```````````````````````````````````` |
|
14 |
Les chaines de caractres internationaliser sont marqus par l'appel la |
|
15 |
fonction `_` *OU* par la mthode quivalent de la requte dans le code python ou |
|
16 |
dans les expressions python de template TAL. |
|
17 |
||
18 |
Dans les templates cubicweb-tal, il est galement possible d'insrer une chaine |
|
19 |
traduire via les balises `i18n:content` et `i18n:replace`. |
|
20 |
||
21 |
De plus des messages correspondant aux entits/relations utiliss par le schma |
|
22 |
de l'application seront automatiquement ajouts. |
|
23 |
||
24 |
Renvoi d'un message internationalis lors de la construction d'une page |
|
25 |
``````````````````````````````````````````````````````````````````````` |
|
26 |
La fonction *built-in* `_` ne doit servir qu'** marquer les messages |
|
27 |
traduire**, non pas rcuprer une traduction. Il faut pour cela utiliser la |
|
28 |
mthode `_` de l'objet requte, sans quoi vous rcuprerez l'identifiant de |
|
29 |
message au lieu de sa traduction dans la langue propre la requte.1 |
|
30 |
||
31 |
||
32 |
Gestion des catalogues de traduction |
|
33 |
------------------------------------ |
|
34 |
Une fois l'application rendu internationalisable cot code, reste grer les |
|
35 |
catalogues de traductions. cubicweb-ctl intgre pour cela les commandes suivantes : |
|
36 |
||
1898
39b37f90a8a4
[cw-ctl] rename i18n commands (see #342889)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
0
diff
changeset
|
37 |
* `i18ncubicweb`, met jour les catalogues de messages *de la librairie |
0 | 38 |
cubicweb*. Sauf si vous dveloppez sur le framework (et non votre propre |
39 |
application), vous ne devriez pas avoir utiliser cette commande |
|
40 |
||
1898
39b37f90a8a4
[cw-ctl] rename i18n commands (see #342889)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
0
diff
changeset
|
41 |
* `i18ncube`, met jour les catalogues de messages *du composant* (ou de tous |
0 | 42 |
les composants). A la suite de cette commande, vous devez mettre jour les |
43 |
fichiers de traduction *.po* dans le sous-rpertoire "i18n" de votre |
|
44 |
template. videmment les traductions prcdentes toujours utilises ont t |
|
45 |
conserves. |
|
46 |
||
1898
39b37f90a8a4
[cw-ctl] rename i18n commands (see #342889)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
0
diff
changeset
|
47 |
* `i18ninstance`, recompile les catalogues de messages *d'une instance* (ou de |
0 | 48 |
toutes les instances) aprs mise jour des catalogues de son composant. Cela |
49 |
est effectu automatiquement lors d'une cration ou d'une mise jour. Les |
|
50 |
catalogues de messages compils se trouvent dans le rpertoire |
|
51 |
"i18n/<lang>/LC_MESSAGES/cubicweb.mo" de l'application o `lang` est |
|
52 |
l'identifiant de la langue sur 2 lettres ('en' ou 'fr' par exemple) |
|
53 |
||
54 |
||
55 |
Le cas classique |
|
56 |
```````````````` |
|
57 |
Vous avez ajout et/ou modifi des messages d'un composant utilis par votre |
|
58 |
application (en ajoutant une nouvelle vue ou en ayant modifi le schma par |
|
59 |
exemple) : |
|
60 |
||
1898
39b37f90a8a4
[cw-ctl] rename i18n commands (see #342889)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
0
diff
changeset
|
61 |
1. `cubicweb-ctl i18ncube <composant>` |
0 | 62 |
2. diter les fichiers <composant>/xxx.po dans pour y rajouter les traductions |
63 |
manquantes (`msgstr` vide) |
|
64 |
3. `hg ci -m "updated i18n catalogs"` |
|
1898
39b37f90a8a4
[cw-ctl] rename i18n commands (see #342889)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
0
diff
changeset
|
65 |
4. `cubicweb-ctl i18ninstance <monapplication>` |
0 | 66 |