Mot-clé - traduction

Fil des billets - Fil des commentaires

lundi, avril 28 2008

Traduction gettext et mémoire

Ça fait un petit moment que je cherche à terminer ma relecture complète des fichiers .po français du projet PostgreSQL. C'est tellement long que la démotivation régnait sur ce projet. Le problème est de relire des milliers de lignes (2847 rien que pour le plus gros, à savoir postgres.po), de modifier de mémoire pour obtenir les mêmes traductions sur les différentes versions. La mémoire pose problème dans ce cas car il est difficile de se rappeler la traduction d'une certaine phrase... manuellement, c'est mission impossible. Aligner les sorties des options est simple comparé à ce jeu de mémoire.

Dimanche dernier, je me suis rappelé qu'on m'avait parlé d'un système de mémoire gettext. En fait, l'idée est tout bête. Pour éviter de traduire plusieurs fois la même phrase, un outil gettext propose une traduction qu'il récupère d'un mémoire. J'avais auparavant aucune idée sur la façon de créer ce mémoire. Mais dimanche, une idée a subitement germé : la version 8.3 a été entièrement relue, ce fut long et fastidieux mais c'est fait. On peut donc se servir de ces traductions déjà vérifiées comme mémoire pour les autres versions.

J'ai donc commencé à chercher des outils pour m'aider en me disant que, dans le pire des cas, j'écrirais ces outils. Comme d'habitude, pas besoin, les outils existent déjà. Donc voici un petit résumé...

msgen permet la création d'une mémoire gettext. Avec ces commandes, j'ai créé un sous répertoire contenant le mémoire pour chaque .po particulier de PostgreSQL:

cd head
mkdir ../memoire
for fichier in *.po
do
  LANG=C msgen -o ../memoire/${fichier}t $fichier
done

Ensuite, il a fallu combiner la mémoire des traductions de la dernière version (la 8.3) avec les traductions des versions précédentes. Cet assemblage nécessite l'outil msgmerge :

for fichier in *.po
do
 mv $fichier ${fichier}.bak
 echo -n "$fichier "
 LANG=C msgmerge --no-wrap -N -o $fichier ../memoire/${fichier}t ${fichier}.bak
done

L'option --no-wrap empêche msgmerge de redimensionner les lignes, histoire d'avoir un diff le plus petit possible. Quant à l'option -N, elle permet de désactiver les recherches inexactes car je veux absolument que la phrase en anglais en version 8.3 corresponde exactement à la phrase en anglais d'une version antérieure pour qu'un remplacement de la traduction puisse intervenir.

Après quelques vérifications, quelques modifications de dernières minutes sur la version 8.3 (et oui, même après validation, il y a encore des retouches à faire), j'ai enregistré les modifs. Évidemment, il reste encore des soucis. Mais un grand nombre de différences de traduction a été résolu grâce à cela. Je vais utiliser les traductions actuelles... si je tombe sur un problème, il sera rapidement corrigé sur toutes les versions.

mardi, avril 22 2008

Enfin une recherche sur docs.postgresqlfr.org

Depuis le temps que je voulais le faire ! Bref, peu importe.

Le site de la documentation française de PostgreSQL dispose enfin de son propre moteur de recherche, utilisant évidemment PostgreSQL 8.3 et la recherche plein texte. Cela n'a demandé que l'ajout d'un formulaire sur la page d'index (toujours en HTML) et l'ajout d'une page PHP pour la connexion à la base, l'exécution de la requête et la récupération des résultats. Bon, le code n'est pas très propre mais le principal est là : ça fonctionne ! (ça a demandé aussi l'écriture d'un script d'intégration de la doc dans la base, mais c'est le côté invisible pour les utilisateurs)

J'ai tout mis dans le SVN de la traduction. Pour les curieux, c'est ici.

La suite est prévisible : rédaction d'un document développeur, d'un document utilisateur, nettoyage du code, ajout de quelques fonctionnalités (l'addon Firefox est le premier qui me vient en tête).

jeudi, août 26 2004

cvs commit hier soir...

Petit bilan de la soirée :

  • une quinzaine de fichiers traduits pour LFS ;
  • relecture de quatre sous-chapitres appliqués à ABS-2.2 (merci Ilan :).

Reste à vérifier si je peux intégrer les modifications de la version 2.2 aux versions ultérieures. Sans parler que j'aimerais bien terminé les 35 fichiers restant à traduire pour LFS cette semaine. Ça me rappelle qu'il serait bien d'ajouter une TODO list sur ce site.

samedi, août 21 2004

LFS et KDE

J'ai commencé la traduction de LFS en début d'après-midi. Je viens à peine de m'arrêter. Pfiou... dur boulot.

Pour mes traductions, j'ai toujours utilisé la ligne de commande que ce soit pour mes dépôts CVS ou pour appeller mon éditeur favori vim. Pour être franc, cela a toujours été suffisant. Donc, je ne sais pas ce qui m'a pris aujourd'hui de vouloir tester l'interface graphique que propose KDE. Je me suis dit dès le début que j'arrêterais rapidement ce test car j'avais peur de perdre trop de temps avec une interface graphique. Finalement, il est 23h43 et j'ai arrété de traduire pour écrire ce billet. L'expérience est plus que concluante. J'ai utilisé cervisia, une interface de CVS pour KDE, simple mais rapide et efficace. Seul petit regret, cervisia ne gère pas un ajout du répertoire et de son contenu en une seule demande. Pour l'édition des fichiers XML, j'ai pris Kate. Là aussi, simple et efficace. Je ne sais pas si Kate sait corriger l'orthographe sur un fichier XML mais cette question mérite quelques investigations. Bref, je suis ravi. Alors que les développeurs KDE viennent de sortir KDE-3.3 (que je n'ai pas encore, zut), je m'enthousiasme devant les possibilités de KDE-3.2. Et mieux encore, les rumeurs de l'Akademy semble prometteurs pour l'avenir de KDE.

Concernant la traduction, j'ai plutôt bien avancé aujourd'hui. J'ai terminé les chapitres 1, 2, 3, 4, 8, 9 et le prologue. Restent les deux mastodontes, les chapitres 5 et 6, ainsi qu'un autre petit chapitre. Les choses sérieuses commencent donc demain... en utilisant KDE pour de bon :)

vendredi, août 20 2004

Plug-And-Play HOWTO, version 1.0.9

La version 1.0.9 du Plug-And-Play Howto est sortie hier. Voici le diff du fichier source.

Ceci n'est qu'un élément de plus à ajouter dans ma TODO list. Quand je pense que j'ai terminé la 1.0.8 il y a peu...