Outils pour utilisateurs

Outils du site


doc:axiom:traduction

Autour de la traduction d'Axiom

Ressources autour de la traduction du livre bookvol1 (et de ses successeurs) d'Axiom.

Bidouilles

Après avoir récupéré le code source d'Axiom (selon ce qui est derrière ce lien).

Une façon

Pour essayer d'éviter de faire la compilation complète d'Axiom. (Bof, bof.)

$ cd tpd
$ ./configure
$ export AXIOM=`pwd`/mnt/linux
$ make start

Le source de bookvol1.pamphlet que j'utilise est dans tpd/src/doc.

$ cd /src/doc

Pour avoir accès à la commande document (elle ne doit pas être faite pour cela) :

$ export PATH=$AXIOM/bin:$PATH

Bizarre : si je crée le document par :

$ document bookvol1

il ne trouve pas le fichier axiom.sty.

Pour y accéder :

$ ln -s ../../mnt/linux/bin/tex/axiom.sty .

NB : cet axiom.sty est différent du axiom.sty qui est obtenu par

$ noweave axiom.sty.pamphlet > axiom.sty

Conclusion : il y a encore des subtilités du système de compilation d'Axiom qui m'échappent…

Une autre façon

Dans le répertoire tpd/src/doc.

$ notangle -t8 bookvol1.pamphlet > Makefile.bookvol1
$ make -f Makefile.bookvol1

Mais cela ne marche pas car les chemins codés en dur de noweave sont faux…

Utiliser po4a

Indépendamment de ce qui précède.

Essais d'utilisation de po4a sur bookvol1.pamphlet.

Extraction du pot

$ po4a-gettextize -f latex -m bookvol1.pamphlet -p bookvol1.pot

Renommage du .pot en .po

$ cp bookvol1.pot bookvol1.fr.po

Puis traduction (à faire) du bookvol1.fr.po par gtranslator, kbabel, poedit ou tout autre éditeur de .po.

Reconstruction du document en français après traduction

$ po4a-translate -k 0 -f latex -m bookvol1.pamphlet -p bookvol1.fr.po -l bookvol1.fr.pamphlet

NB : -k 0 pour forcer même quand on a moins de 80 % de traduction faite.

Problèmes

Listes

po4a a un problème avec certaines listes de bookvol1.pamphlet. L'anomalie est corrigée dans le cvs de po4a. Tim a appliqué un correctif de moi sur bookvol1.pamphlet permettant de le contourner en attendant. (Pour la prochaine mouture d'Axiom).

Noweb

Les blocs noweb ne sont ni compris ni gérés par po4a. La mise en forme en est perdue lors de la reconstruction du texte.

Les blocs noweb ne vont pas disparaître (dixit Tim), ils vont même se multiplier dans les volumes suivants.

Nicolas François a fait des progrès là-dessus. Voir ici.

Exemple de .pot

Il y en a un ici. Il correspond à une version avec mon correctif pour les listes mais sans la partie noweb problématique. Ne pas utiliser comme point de départ d'une traduction, c'est juste pour exemple.

Exemple de .pamphlet problématique

ici. Le lire pour comprendre.

Pistes de solutions

Évoquée avec Nicolas François, l'un des développeurs de po4a et avec David, qui a un petit intéret pour la programmation littéraire (et un logiciel utilisant aussi noweb).

Voir po4a.

1ère piste : adapter po4a à noweb (travailler directement sur le .pamphlet)

Il faudrait par exemple traiter les << (début d'un bloc noweb) et @ (fin d'un bloc noweb) comme les début et fin d'un environnement verbatim (que po4a sait traiter).

David propose d'« augmenter » les << et @ en ajoutant par exemple \begin{noweb} \end{noweb} avec des expressions rationnelles en sed/Perl/Python.

Il y a aussi les filtres de noweb (voir http://www.eecs.harvard.edu/nr/noweb/guide.ps) (signalé par David). J'ai regardé, mais je ne vois pas bien le rapport ni, pour l'instant, comment nous pourrions l'utiliser.

Selon Nicolas François :

Pour 1/, je vois plusieurs solutions:
a) Faire un nouveau module, qui hériterait du module LaTeX, pour le
   support de noweb. Je pense qu'il suffit de surcharger la fonction
   parse.
b) permettre de spécifier des couple d'expression rationnelle qui ouvre ou
   ferme des environnement verbatim (pour po4a, pas nécessairement pour
   LaTeX).
c) changer les << et @ en \begin{noweb} et \end[noweb}
   Il faudra ensuite permettre des environnements verbatim qui n'ont pas
   le nom "verbatim".

2e piste : travailler sur le résultat de noweave (un .tex)

Au lieu de << et @, il faudrait cette fois-ci utiliser les

\\nwfilename{noweb.pamphlet}\\nwbegincode{1}
...
\\nwendcode{}\\nwbegindocs{2}\\nwdocspar

produits par noweave.

Toujours selon Nicolas François :

2/, po4a ne permet pas pour l'instant d'indiquer qu'une commande
débute un environnement verbatim et qu'une autre commande le ferme.
Une solution d) consiterait donc a enlever ce manque.

J'ai dans ma TODO liste c) et d)

J'ai peur que b) ne soit pas très LaTeX. Mais de toute façon, si je fais
d), ça doit pas être très différent.
doc/axiom/traduction.txt · Dernière modification: 2006/03/08 10:35 par lehobey