mercredi, juillet 13 2005

Comment corriger ses traductions facilement

Le premier qui me dit ispell/aspell, je le mors. Oui, je connais ces softs. Oui, fevrier indique dans son petit guide du traducteur qu'il faut les utiliser, que c'est génial trop fort et tout et tout. Oui, je suis d'accord, oui je les utilise... pour des textes de vingt pages maxi sinon ça devient trop lourd.

J'ai traduit des documents de plusieurs centaines de pages (non, je ne me la pète pas :) ). Croyez-moi, sur des gros documents comme ceux-là, aspell est une perte de temps.

La semaine dernière, pendant les RMLL, j'ai reçu un courrier de Jean-Max Reymond (Linux-Azur) m'indiquant qu'il avait découvert des erreurs dans la documentation de PostgreSQL. Il s'en est rendu compte en copiant une page dans OpenOffice.org. Si celui-ci est bien configuré, il indique les fautes d'orthographe en rouge. L'idée était intéressante mais je n'avais pas encore compris tout son potentiel. Si je dois copier tous les fichiers HTML un par un, je ne suis pas prêt d'en avoir terminé. Mais, au fait, pour générer le PDF, je crée un seul fichier HTML... autant utiliser celui-là :)

Bref, mardi, j'ai copié le fichier entier dans un fichier texte d'OpenOffice.org... et je vois du rouge partout. Un peu désespérant :-/ En y regardant bien, on s'aperçoit que les même erreurs arrivent fréquemment. Je commence donc à remplir un fichier avec l'erreur et la correction séparée par un caractère. Après 200 pages, je trouve intéressant de voir si un remplacement automatique est possible. Oui, ça l'est mais j'ai été un peut trop basique au tout début. Voici un court extrait du script :

for fichier in *.sgml
do
  mv ${fichier} ${fichier}.bak
  cat ${fichier}.bak | sed \
    -e 's/gèrable/gérable/g' \
    -e 's/règlage/réglage/g' \
    -e 's/interfacer/créer une interface/g' \
    -e 's/example/exemple/g' \
    -e 's/clareté/clarté/g' \
    -e 's/investisement/investissement/g' \
...

Ça a très bien fonctionné, peut-être un peu trop. Par exemple, j'ai remplacé tous les « example » par des « exemple », y compris la balise <example>. J'ai donc eu beaucoup de cvs diff et de corrections à faire pour arriver à un résultat intéressant.

Comme je n'ai pas très envie de faire la même erreur pour la documentation de la version 7.4, j'ai fait quelques recherches sur sed pour ne pas prendre en compte <example>. Voici à quoi j'arrive :

for fichier in *.sgml
do
  mv ${fichier} ${fichier}.bak
  cat ${fichier}.bak | sed \
    -e 's/gèrable/gérable/g' \
    -e 's/règlage/réglage/g' \
    -e 's/interfacer/créer une interface/g' \
    -e 's/\([^</-]\)example/\1exemple/g' \
    -e 's/clareté/clarté/g' \
    -e 's/investisement/investissement/g' \
...

La partie exemple est bien plus costaud. Bon, je n'ai plus qu'à tenter ça sur les sources. En attendant, il faut que je me fasse aussi les 400 autres pages du manuel. Allez, courage...