Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:axiom:traduction [2006/03/07 17:47] lehobey |
doc:axiom:traduction [2006/03/08 10:35] lehobey |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== 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 [[doc:traduction: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'[[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=354955|anomalie]] est corrigée dans le cvs de [[http://po4a.alioth.debian.org/|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. | ||
- | |||
- | ==== Exemple de .pot ==== | ||
- | Il y en a un [[http://lehobey-rennes.dyndns.org/axiom/bookvol1.pot|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**. | ||
- | |||
- | ===== 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 [[doc:traduction: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 : | ||
- | <file> | ||
- | 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". | ||
- | </file> | ||
- | |||
- | ==== 2e piste : travailler sur le résultat de noweave (un .tex) ==== |