[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Retour et changements



On Mon, Aug 16, 2004 at 01:24:57PM +0200, Julien Louis wrote:
> On Mon, Aug 16, 2004 at 12:31:53AM -0700, Martin Quinson wrote:
> > 
> > Jusque la, notre "monsieur page de manuel", c'etait Julien Louis, non? En ce
> > moment, il joue avec po4a, me trouve pleins de bugs, et fourni des rapports
> > de bugs aux paquets pour les bascules.
> 
> Je peux aussi fournir des patchs pour corriger le formattage des pages de manuel
> pour les rendre po4a-compliant ;)

Ca serait cool, evidement. J'en ai deja trois a mon actif
(graal.ens-lyon.fr/~mquinson/debian/po4a-switch), et seul celui pour
kernel-package est soumis. On est un peu dans la situation de la poule et de
l'oeuf. Les mainteneurs et traducteurs sont un peu mefiants vis a vis de
po4a car personne ne l'utilise pour l'instant. Donc personne ne l'utilise.

> En parlant, de bugs de po4a, j'ai pas trouvé si on pouvait fusionner plusieurs
> traductions dans un seul et unique fichier po car pour l'instant je remplis les
> po qui contiennent plusieurs pages de manuel. Par exemple, je viens de
> gettextiser les pages de manuel de debconf, et j'avais déjà gettextisé toutes
> les pages une par une et j'aurais bien aimé pouvoir fusionner tous ces po
> indépendants dans le meme po.

Tu gettextize toutes les pages les unes apres les autres. Tu utilise msgcat
pour fusionner tous les po dans un gros po, (pas besoin pour les pot), tu
edite le resultat pour lever les conflits quand la meme chaine etait
traduite de maniere differente dans differents fichiers, tu fais un beau
po4a.conf qui pointe sur un pot qui n'existe pas encore, sur le joli po
que t'as, et sur les traductions qui n'existent pas encore. 

Tu lance po4a avec, et il cree le pot de tous les fichiers. Il resyncronise
le gros.po vis a vis du gros.pot, et genere les traductions. (celles qui
sont a moins de 80% sont pas ecrite sur disque sauf si tu joue avec -k)

[Si t'as de gros fichiers, la premiere execution de po4a sur une version
 fortement modifiee du pot peut etre *tres* longue. Quand j'ai fait ca pour
 les trad pod de perl, ca a pris 48h sur une machine tres honnete. Les
 executions suivantes sont de l'ordre de 15 sec sur mon vieux portable.
 C'est msgmerge qui prend du temps, et c'est pas un bug. Ce qu'on lui
 demande est difficile (sans doute m^2 calculs de distances de Levenshtein,
 cf wikipedia, m = nombre de messages). On ne triche pas avec un O(n^4) ou
 n = taille du fichier en octet ~ 5Mo] 

Regarde ce que j'ai fait pour dpkg et shadow pour des exemples.

> Autre idée, pouvoir extraire un document, si le fichier po en contient plusieur
> (cas très fréquent dans les pages de manuel).

Il faut utiliser "msggrep --location=NomDeFichier". J'ai commence un beau
"msgsearch" qui permet de selectionner certains messages des po avec des
filtres avances, mais finalement, msggrep --location me suffit pour l'instant.

Une fois que t'as modifie un po separe, pour le remettre dans le gros po
utilise par po4a, il faut faire "msgcat ptit.po gros.po --use-first".
(attention, si tu fais "msgcat gros.po ptit.po --use-first", tu ecrase tes
modifications avec les valeurs precedentes).

J'ai dans l'idee d'automatiser ce genre de choses avec une option --split
pour po4a (elle existe dans le code, mais elle est pas documentee car elle
marche pas. Un jour, je programerais propre). Mais je ne sais pas trop
comment gerer la fusion apres edition. Il faut detecter le plus recent des
fichiers, et prendre les traductions de cette source en le mettant en
premier dans le msgcat. C'est pas impossible, grace au PO-Revision-Date:,
mais c'est un peu chiant a faire et j'ai peur que ca soit piegeux pour les
utilisateurs.

Et surtout, je sais plus faire si tu edite deux fichiers en meme temps s'ils
ont des chaines en commun. Il doit falloir faire une sorte de diff entre le
vieux ptit.po et le nouveau ptit.po, trouver les chaines modifiees, et
n'utiliser qu'elles pour le msgcat. Mmm. Il me reste du boulot.


Le plus simple est de garder un seul gros fichier po, en fait. C'est penible
de faire la traduction, mais une fois que c'est fait, la maintenance devrait
aller mieux. C'est comparable a ce que Christian preconise pour les
po-debconf de l'installeur.


Bye, Mt.

-- 
Ouvrir une école, c'est fermer une prison.
            -- Victor Hugo
[Openning a school comes down to close a jail]

Attachment: signature.asc
Description: Digital signature


Reply to: