WEBVTT
00:01.280 --> 00:00:02.560
Bonjour tout le monde.
00:02.560 --> 00:00:04.400
Je m’appelle Jean-Christophe Helary,
00:00:04.400 --> 00:00:05.680
et aujourd’hui je vais vous parler
00:00:05.680 --> 00:00:08.320
de la traduction des manuels Emacs avec OmegaT.
00:00:08.320 --> 00:00:10.960
Merci de vous joindre à moi aujourd’hui.
00:10.960 --> 00:00:12.880
La traduction dans le monde du logiciel libre
00:12.880 --> 00:00:15.040
est un phénomène très important. Vous savez déjà
00:15.040 --> 00:00:17.119
que la plupart des distributions Linux,
00:17.119 --> 00:00:18.720
la plupart des logiciels,
00:00:18.720 --> 00:00:19.920
la plupart des sites web
00:00:19.920 --> 00:00:22.320
sont traduits par des dizaines de communautés
00:00:22.320 --> 00:00:23.439
à l’aide de processus
00:23.439 --> 00:00:24.880
et de formats de fichiers tous différents.
00:24.880 --> 00:00:27.359
La traduction et la localisation
00:27.359 --> 00:00:29.599
sont des choses que nous connaissons bien.
00:29.599 --> 00:00:30.400
C’est un peu différent
00:00:30.400 --> 00:00:32.160
pour la communauté Emacs.
00:32.160 --> 00:00:34.079
Nous n’avons pas de processus de localisation
00:34.079 --> 00:00:35.200
parce que c’est encore trop complexe
00:00:35.200 --> 00:00:35.920
et parce que nous n’avons pas
00:00:35.920 --> 00:00:37.600
encore les ressources nécessaires.
00:37.600 --> 00:00:39.920
Néanmoins, nous pourrions traduire les manuels,
00:00:39.920 --> 00:00:41.200
et traduire les manuels
00:00:41.200 --> 00:00:42.399
apporterait probablement beaucoup
00:00:42.399 --> 00:00:45.600
à la communauté Emacs dans son ensemble.
00:45.600 --> 00:00:47.920
Quel est donc l’état des manuels ?
00:47.920 --> 00:00:51.199
À ce jour, nous avons 182 fichiers
00:51.199 --> 00:00:54.160
aux formats .texi et .org.
00:54.160 --> 00:00:56.559
Nous avons plus de 2 millions de mots.
00:56.559 --> 00:00:57.360
Nous avons plus de
00:00:57.360 --> 00:00:59.039
50 millions de caractères.
00:00:59.039 --> 00:01:00.559
C’est donc beaucoup de travail,
01:00.559 --> 00:01:04.559
et il est clair qu’une personne ne suffira pas.
01:04.559 --> 00:01:06.159
Quand on ouvre un fichier .texi
00:01:06.159 --> 00:01:07.760
qu’est-ce qu’on y trouve ?
01:07.760 --> 00:01:09.439
Eh bien, beaucoup de choses en fait
01:09.439 --> 00:01:10.560
que les traducteurs
00:01:10.560 --> 00:01:12.400
ne devraient pas avoir à traduire.
01:12.400 --> 00:01:13.680
Ici, on peut voir que seul
00:01:13.680 --> 00:01:15.040
le tout dernier segment,
00:01:15.040 --> 00:01:16.400
la toute dernière phrase
00:01:16.400 --> 00:01:18.080
doit être traduite.
01:18.080 --> 00:01:19.360
Toutes ces choses « méta »
00:01:19.360 --> 00:01:20.240
ne devraient pas être sous
00:01:20.240 --> 00:01:24.479
les yeux du traducteur.
01:24.479 --> 00:01:26.720
Comment faire face à cette situation ?
01:26.720 --> 00:01:27.680
Pour les fichiers de code, nous avons
00:01:27.680 --> 00:01:29.360
l’utilitaire gettext qui convertit
00:01:29.360 --> 00:01:30.640
toutes les chaînes de traduisibles
00:01:30.640 --> 00:01:32.079
dans un format traduisible,
00:01:32.079 --> 00:01:33.840
qui est le format .po.
01:33.840 --> 00:01:35.520
Ce format .po est omniprésent,
00:01:35.520 --> 00:01:36.400
même dans l’industrie de la traduction
00:01:36.400 --> 00:01:38.720
des logiciels non-libres.
01:38.720 --> 00:01:39.520
Pour la documentation,
00:01:39.520 --> 00:01:40.720
nous avons quelque chose de différent
00:01:40.720 --> 00:01:42.000
qui s’appelle po4a,
00:01:42.000 --> 00:01:45.119
l’abréviation de « po for all » (po pour tous).
01:45.119 --> 00:01:46.399
Quand on utilise po4a
00:01:46.399 --> 00:01:49.200
sur ces 182 fichiers .texi et .org,
00:01:49.200 --> 00:01:50.479
qu’est-ce qu’on obtient ?
01:50.479 --> 00:01:52.640
On obtient quelque chose de bien mieux.
01:52.640 --> 00:01:54.799
Maintenant on a trois segments.
01:54.799 --> 00:01:55.759
Ce n’est pas parfait, car,
00:01:55.759 --> 00:01:56.399
comme vous pouvez le voir,
00:01:56.399 --> 00:01:57.280
les deux premiers segments
00:01:57.280 --> 00:01:58.880
ne sont pas à traduire.
01:58.880 --> 00:01:59.520
Donc on peut encore
00:01:59.520 --> 00:02:02.479
améliorer les choses.
02:02.479 --> 00:02:04.960
Quand on met ces fichiers
00:02:04.960 --> 00:02:07.119
dans OmegaT, on réduit considérablement
00:02:07.119 --> 00:02:08.800
le nombre total de mots.
02:08.800 --> 00:02:11.360
On a maintenant 50 % de mots en moins
00:02:11.360 --> 00:02:14.239
et 23 % de caractères en moins à taper,
02:14.239 --> 00:02:15.680
mais c’est toujours encore beaucoup de travail.
00:02:15.680 --> 00:02:17.599
Je vais donc vous parler d’OmegaT maintenant
00:02:17.599 --> 00:02:22.239
pour voir où il peut nous être utile.
02:22.239 --> 00:02:25.440
OmegaT est un logiciel GPL3+, Java8+.
02:25.440 --> 00:02:27.599
C’est un outil de Traduction Assistée par Ordinateur.
02:27.599 --> 00:02:29.440
On abrège ça TAO.
02:29.440 --> 00:02:30.720
La TAO est aux traducteurs
00:02:30.720 --> 00:02:33.280
ce que les EDI sont aux programmeurs.
02:33.280 --> 00:02:35.040
Elle exploite la puissance de l’ordinateur
00:02:35.040 --> 00:02:36.480
pour automatiser notre travail,
00:02:36.480 --> 00:02:38.400
qui consiste en recherche de références,
00:02:38.400 --> 00:02:40.800
de correspondances, insertions automatiques,
00:02:40.800 --> 00:02:44.080
et d’autres choses comme ça.
02:44.080 --> 00:02:46.319
OmegaT n’est plus si jeune.
02:46.319 --> 00:02:48.319
Il aura 20 ans l’année prochaine,
02:48.319 --> 00:02:48.959
et à ce stade
00:02:48.959 --> 00:02:51.440
nous avons environ 1,5 million de téléchargements
00:02:51.440 --> 00:02:53.200
sur le site SourceForge
00:02:53.200 --> 00:02:54.080
ce qui ne veut pas dire grand-chose
00:02:54.080 --> 00:02:55.040
parce que cela inclut
00:02:55.040 --> 00:02:56.480
les fichiers utilisés pour la localisation
00:02:56.480 --> 00:02:57.920
les manuels, mais quand même
00:02:57.920 --> 00:02:59.599
c’est un chiffre quand même important.
02:59.599 --> 00:03:00.720
OmegaT est inclus dans
00:03:00.720 --> 00:03:02.400
beaucoup de distributions Linux,
00:03:02.400 --> 00:03:03.680
mais comme vous pouvez le voir ici,
03:03.680 --> 00:03:05.920
il est surtout téléchargé sur Windows
00:03:05.920 --> 00:03:06.800
car les traducteurs
00:03:06.800 --> 00:03:09.680
travaillent principalement sous Windows.
03:09.680 --> 00:03:11.120
OmegaT a un logo sympa
00:03:11.120 --> 00:03:12.080
et un site sympa aussi,
00:03:12.080 --> 00:03:13.920
et je vous invite vraiment à le visiter.
00:03:13.920 --> 00:03:16.159
L’URL est omegat.org et vous y trouverez
03:16.159 --> 00:03:17.280
toutes les informations dont vous avez besoin
00:03:17.280 --> 00:03:19.040
ainsi que les téléchargements des versions Linux,
00:03:19.040 --> 00:03:22.080
avec ou sans Java inclus.
03:22.080 --> 00:03:24.799
Alors, qu’est-ce qu’OmegaT nous apporte ?
03:24.799 --> 00:03:26.560
Les traducteurs professionnels doivent fournir
03:26.560 --> 00:03:27.680
des traductions rapides, cohérentes,
00:03:27.680 --> 00:03:29.519
et de qualité,
03:29.519 --> 00:03:30.720
et nous devons disposer d’outils appropriés
00:03:30.720 --> 00:03:32.159
pour y parvenir.
00:03:32.159 --> 00:03:34.239
J’aimerais que po-mode fasse partie de nos outils,
00:03:34.239 --> 00:03:35.120
mais ce n’est pas le cas,
03:35.120 --> 00:03:36.560
et c’est bien dommage.
03:36.560 --> 00:03:39.760
Nous devons donc utiliser ces outils de TAO.
03:39.760 --> 00:03:41.440
Laissez-moi vous montrer à quoi ressemble OmegaT
03:41.440 --> 00:03:43.120
quand j’ouvre ce projet que j’ai créé
03:43.120 --> 00:03:45.200
pour cette présentation.
03:45.200 --> 00:03:46.640
La fenêtre est assez impressionnante,
00:03:46.640 --> 00:03:47.760
mais vous pouvez en fait modifier
00:03:47.760 --> 00:03:49.519
toutes les parties selon vos besoins.
03:49.519 --> 00:03:50.400
Je veux juste vous montrer
00:03:50.400 --> 00:03:51.120
tout en même temps
00:03:51.120 --> 00:03:53.680
pour vous donner une idée rapide de l’ensemble.
03:53.680 --> 00:03:55.200
Vous avez différentes couleurs, fenêtres,
00:03:55.200 --> 00:03:55.920
et tous ces espaces
00:03:55.920 --> 00:03:57.120
ont des fonctions différentes
03:57.120 --> 00:03:58.560
qui aident le traducteur,
00:03:58.560 --> 00:03:59.360
et qui probablement ne vous sont
00:03:59.360 --> 00:04:02.879
pas familières.
04:02.879 --> 00:04:04.080
Je vais vous présenter
00:04:04.080 --> 00:04:05.680
l’interface maintenant.
04:05.680 --> 00:04:07.519
Tout d’abord, nous avons l’éditeur.
04:07.519 --> 00:04:09.439
L’éditeur est composé de deux parties :
04:09.439 --> 00:04:10.480
le segment courant,
00:04:10.480 --> 00:04:12.319
qui est associé à un numéro,
00:04:12.319 --> 00:04:13.519
et tous les autres segments,
00:04:13.519 --> 00:04:15.840
au-dessus ou en dessous.
04:15.840 --> 00:04:16.720
En haut de la fenêtre,
00:04:16.720 --> 00:04:18.720
vous pouvez voir les trois premiers segments
00:04:18.720 --> 00:04:20.799
qui étaient dans le fichier .po.
04:20.799 --> 00:04:22.880
Le dernier ici, le quatrième, inclut
00:04:22.880 --> 00:04:28.720
une insertion automatique de correspondance.
04:28.720 --> 00:04:30.880
On appelle ce type de traductions
04:30.880 --> 00:04:32.720
des « mémoires de traduction ».
04:32.720 --> 00:04:35.280
OmegaT a inséré celle-ci automatiquement
00:04:35.280 --> 00:04:37.120
parce que j’ai paramétré comme ça,
04:37.120 --> 00:04:38.560
et pour ma sécurité, elle est insérée avec
00:04:38.560 --> 00:04:40.639
le préfixe prédéfini « fuzzy »
00:04:40.639 --> 00:04:41.919
que je devrai retirer
00:04:41.919 --> 00:04:44.880
pour valider la traduction.
04:44.880 --> 00:04:47.919
La fonctionnalité suivante est le glossaire.
04:47.919 --> 00:04:48.479
Dans ce projet,
00:04:48.479 --> 00:04:50.160
on a beaucoup de glossaires.
00:04:50.160 --> 00:04:52.560
Certains sont pertinents, d’autres non.
04:52.560 --> 00:04:53.919
Dans le segment que je suis en train de traduire
00:04:53.919 --> 00:04:55.199
en ce moment, vous pouvez voir
00:04:55.199 --> 00:04:57.520
des éléments soulignés.
04:57.520 --> 00:04:59.040
Ce menu contextuel à droite
00:04:59.040 --> 00:05:02.240
me permet d’entrer les termes au fur et à mesure que j’écris.
05:02.240 --> 00:05:04.639
C’est une sorte de système d’insertion automatique
00:05:04.639 --> 00:05:07.039
qui propose aussi des prédictions de l’historique,
00:05:07.039 --> 00:05:14.479
des chaînes prédéfinies et d’autres choses comme ça.
05:14.479 --> 00:05:15.440
Dans la partie à droite,
00:05:15.440 --> 00:05:17.120
on a des informations de référence
00:05:17.120 --> 00:05:18.240
qui viennent directement
00:05:18.240 --> 00:05:21.440
des fichiers .po et .texi.
05:21.440 --> 00:05:23.440
On a également des notes à partager
00:05:23.440 --> 00:05:25.759
avec des collègues traducteurs,
05:25.759 --> 00:05:28.080
et nous avons des chiffres qui me disent
00:05:28.080 --> 00:05:31.199
qu’il me reste encore 143 000 segments à traduire
00:05:31.199 --> 00:05:35.280
avant de terminer cette traduction.
05:35.280 --> 00:05:37.120
Comme on le voit, il y a beaucoup de chaînes
05:37.120 --> 00:05:40.000
que nous ne voulons vraiment pas avoir à saisir.
05:40.000 --> 00:05:42.160
Par exemple, ces chaînes
00:05:42.160 --> 00:05:43.840
sont des chaînes .texi typiques
00:05:43.840 --> 00:05:45.039
que le traducteur
00:05:45.039 --> 00:05:46.479
ne devrait vraiment pas avoir à saisir.
00:05:46.479 --> 00:05:47.360
Nous allons donc devoir
00:05:47.360 --> 00:05:50.400
faire quelque chose pour gérer ça.
05:50.400 --> 00:05:51.600
On va devoir créer des
00:05:51.600 --> 00:05:52.479
chaînes protégées
00:05:52.479 --> 00:05:54.400
à l’aide d’expressions régulières,
05:54.400 --> 00:05:56.800
afin que les chaînes puissent être visualisées
00:05:56.800 --> 00:05:59.120
immédiatement dans le segment source,
05:59.120 --> 00:06:00.479
saisies de manière semi-automatique
00:06:00.479 --> 00:06:01.680
dans le segment cible,
00:06:01.680 --> 00:06:04.479
et validables.
06:04.479 --> 00:06:06.479
L’expression régulière que j’ai trouvée
06:06.479 --> 00:06:08.160
pour définir la plupart des chaînes
00:06:08.160 --> 00:06:09.600
est celle-ci,
06:09.600 --> 00:06:11.120
et je ne suis pas un pro des regex
00:06:11.120 --> 00:06:13.360
donc certains d’entre vous pourront me corriger.
00:06:13.360 --> 00:06:14.560
Mais cette expression me donne
00:06:14.560 --> 00:06:15.919
une définition suffisante
00:06:15.919 --> 00:06:17.919
même si elle n’inclut pas encore
00:06:17.919 --> 00:06:20.960
la syntaxe org-mode.
06:20.960 --> 00:06:22.344
Donc maintenant on a toutes ces
00:06:22.344 --> 00:06:23.440
chaînes spécifiques à .texi
00:06:23.440 --> 00:06:24.960
que nous ne voulons pas toucher
06:24.960 --> 00:06:26.100
affichées en gris.
00:06:26.100 --> 00:06:27.680
En fait, vous avez peut-être remarqué
00:06:27.680 --> 00:06:28.479
que j’ai un peu triché,
06:28.479 --> 00:06:30.319
car ici j’ai ajouté les années
00:06:30.319 --> 00:06:32.000
et le nom de la Free Software Foundation
00:06:32.000 --> 00:06:34.000
à la regex précédente
00:06:34.000 --> 00:06:35.520
pour vous montrer que vous pouvez protéger
00:06:35.520 --> 00:06:38.560
vraiment n’importe quel type de chaîne.
06:38.560 --> 00:06:39.520
On obtient maintenant
00:06:39.520 --> 00:06:41.360
une visualisation des chaînes de caractères
00:06:41.360 --> 00:06:43.440
que nous ne voulons pas toucher,
06:43.440 --> 00:06:45.440
mais on doit encore les saisir toutes
00:06:45.440 --> 00:06:46.880
dans la traduction.
06:46.880 --> 00:06:48.319
Pour ça, on a le menu contextuel
00:06:48.319 --> 00:06:50.400
que j’ai utilisé plus tôt avec le glossaire,
00:06:50.400 --> 00:06:51.520
et on a également des rubriques
00:06:51.520 --> 00:06:52.400
dans le menu d’édition
00:06:52.400 --> 00:06:53.919
qui sont accompagnés de raccourcis
00:06:53.919 --> 00:06:57.199
pour faciliter l’insertion des balises manquantes.
06:57.199 --> 00:06:58.800
Enfin, et ce n’est pas le moins important,
00:06:58.800 --> 00:07:00.800
nous pouvons maintenant valider nos entrées.
00:07:00.800 --> 00:07:02.479
Ici, OmegaT me dit correctement
00:07:02.479 --> 00:07:05.759
que j’ai raté 7 chaînes protégées.
07:05.759 --> 00:07:07.599
Je n’ai entré que 1998,
00:07:07.599 --> 00:07:09.280
mais il y avait cinq autres années,
00:07:09.280 --> 00:07:10.479
la chaîne de copyright,
00:07:10.479 --> 00:07:14.240
et le nom de la FSF.
07:14.240 --> 00:07:15.970
Avec ce support presque natif
00:07:15.970 --> 00:07:16.960
du format Texinfo,
00:07:16.960 --> 00:07:18.880
on a beaucoup moins de choses à saisir,
07:18.880 --> 00:07:19.919
et il y a beaucoup moins
00:07:19.919 --> 00:07:21.120
d’erreurs potentielles.
00:07:21.120 --> 00:07:25.199
Mais on est d’accord, c’est encore beaucoup de travail.
07:25.199 --> 00:07:26.319
Ce qu’on aimerait maintenant
00:07:26.319 --> 00:07:27.840
c’est de collaborer avec des collègues traducteurs,
00:07:27.840 --> 00:07:28.720
et là, on doit savoir
00:07:28.720 --> 00:07:29.840
qu’OmegaT est en fait
00:07:29.840 --> 00:07:32.080
un client svn/git dissimulé,
00:07:32.080 --> 00:07:34.240
et que les projets en équipe peuvent être hébergés
07:34.240 --> 00:07:36.319
sur des plates-formes svn/git.
07:36.319 --> 00:07:37.199
Les traducteurs n’ont pas besoin
00:07:37.199 --> 00:07:38.880
de connaître le contrôle de version.
00:07:38.880 --> 00:07:40.720
Ils ont juste besoin d’identifiants d’accès,
00:07:40.720 --> 00:07:42.400
et OmegaT va commiter pour eux.
00:07:42.400 --> 00:07:44.080
De cette façon, nous n’avons pas besoin d’utiliser
00:07:44.080 --> 00:07:45.759
d’interfaces de traduction web laides
00:07:45.759 --> 00:07:47.199
et peu ergonomiques
00:07:47.199 --> 00:07:48.800
puisqu’on peut utiliser un outil
00:07:48.800 --> 00:07:51.440
hors ligne professionnel.
07:51.440 --> 00:07:52.479
Voici donc à quoi ressemble
00:07:52.479 --> 00:07:54.160
la plateforme
00:07:54.160 --> 00:07:55.919
où j’héberge ce projet.
07:55.919 --> 00:07:57.199
Les dernières mises à jour datent d’il y a
00:07:57.199 --> 00:07:58.639
20 jours et 30 secondes
00:07:58.639 --> 00:08:00.720
quand j’ai créé cette présentation,
08:00.720 --> 00:08:02.479
et vous pouvez voir que j’ai un partenaire
00:08:02.479 --> 00:08:04.639
qui a travaillé avec moi sur le même ensemble de fichiers.
08:04.639 --> 00:08:05.520
Bien qu’il semble que
00:08:05.520 --> 00:08:06.879
que nous avons effectivement commité la traduction
00:08:06.879 --> 00:08:07.680
sur la plateforme,
00:08:07.680 --> 00:08:11.039
ce n’était pas nous, mais OmegaT.
00:08:11.039 --> 00:08:13.599
OmegaT fait le gros du travail.
08:13.599 --> 00:08:15.039
Il effectue régulièrement des sauvegardes et
00:08:15.039 --> 00:08:16.879
se synchronise avec les serveurs.
08:16.879 --> 00:08:18.720
Les traducteurs reçoivent régulièrement
08:18.720 --> 00:08:20.479
les mises à jour de leurs collègues,
00:08:20.479 --> 00:08:21.680
et quand il le faut,
00:08:21.680 --> 00:08:23.360
OmegaT affiche un simple
00:08:23.360 --> 00:08:25.440
dialogue de résolution des conflits.
08:25.440 --> 00:08:27.039
Les traducteurs n’ont jamais à manipuler
08:27.039 --> 00:08:29.360
svn ou git, jamais.
08:29.360 --> 00:08:30.800
Et maintenant, nous pouvons envisager un avenir
00:08:30.800 --> 00:08:31.599
pas si lointain
00:08:31.599 --> 00:08:33.120
où les manuels seraient traduits
00:08:33.120 --> 00:08:34.159
et éventuellement inclus
00:08:34.159 --> 00:08:35.279
dans la distribution,
00:08:35.279 --> 00:08:36.080
mais c’est un sujet
00:08:36.080 --> 00:08:39.760
pour une autre présentation.
08:39.760 --> 00:08:42.080
J’ai atteint la fin de cette session.
08:42.080 --> 00:08:44.240
Merci encore d’y avoir participé.
08:44.240 --> 00:08:45.600
Il y a beaucoup de sujets
00:08:45.600 --> 00:08:46.880
que j’avais promis de ne pas aborder,
00:08:46.880 --> 00:08:50.000
et je pense avoir tenu ma promesse.
08:50.000 --> 00:08:51.600
Il va y avoir des questions-réponses maintenant
00:08:51.600 --> 00:08:52.517
et j’ai aussi commencé
00:08:52.517 --> 00:08:53.600
un fil de discussion sur cette session
00:08:53.600 --> 00:08:55.519
samedi dernier, sur Reddit.
08:55.519 --> 00:08:57.279
Vous pouvez me trouver sur les listes emacs-help
00:08:57.279 --> 00:08:59.200
et emacs-devel,
00:08:59.200 --> 00:09:00.480
alors n’hésitez pas à m’envoyer
00:09:00.480 --> 00:09:02.080
vos questions et remarques.
09:02.080 --> 09:06.760
Merci encore, et à bientôt !