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