Traductions assistées

Le GitLab de l’association serait approprié. Par contre, personnellement, je ne vois pas me lancer dedans maintenant, bien que ce texte m’intéresse beaucoup plus que d’autres…

1 « J'aime »

Je n’ai vraiment pas le temps de me pencher sur ce chantier actuellement mais je viens d’apprendre, sans toutefois vérifier à la source, que Deepl, qui est (bien) une IA de traduction allemande, jusqu’ici hébergée exclusivement sur des serveurs en Allemagne et en Islande, ne traite plus depuis le 20 mai 2026 les données uniquement sur ses propres serveurs mais y ajoute le cloud d’Amazon Web Services. Et ses conditions générales lui réservent désormais le droit de décider où vos données sont traitées. À cette occasion, j’ai découvert Systran avec lequel j’ai testé le même texte que celui utilisé initialement par @quark67 et il s’en sort apparemment honorablement :

\TeX{}u Pièce d'entrée
%%%%%%%%%%%%%%%%%%%%%%%%%%

\sub Input Gateway Draft \TeX{}u [Draft]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Le fichier d'entrée \TeX{}u est de type texte et contient des caractères
individuels qui doivent être plantés.  En outre, le fichier d'entrée contient
appelé~{\it séquence d'échappement}\inl[vérifier la séquence] Séquences de
contrôle.  Séquence De Contrôle déterminer le mode d'exécution du taux. Par
exemple, une séquence de contrôle |\TEX| placera le logo \uv{\TeX}. Au démarrage
(lorsque le format n'est pas chargé) est v~\TeX{}u a implémenté environ 300~{\it
contrôleurs primitifs\/} séquences (abrégé {\it primitives\/}).\inl[primitives]
En outre, de nouveaux contrôler des séquences (par exemple, via une primitive
|\def|) qui remplace principalement des groupes d'autres séquences de
contrôle. Nouvellement déclaré Les séquences de contrôle sont appelées {\it
macros}.\inl[macro] Par exemple, une séquence de contrôle |\TeX| est une macro
qui repose sur~primitives |\hbox| |\kern| et |\lower|~(voir section~B).

Les formats \TeX{}u (tels que plain, \LaTeX{}, etc.) déclarent un nouveau
contrôle séquences généralement plus conviviales que directes l'utilisation de
primitives. L'auteur du texte n'a pas besoin d'être exprimé uniquement par
primitives (ce serait terriblement compliqué) et n'est pas forcé de les macros
nécessaires pour se déclarer au début de votre texte. Tous les formats sont
basées sur le format standard de base décrit par dans~\TeX{}book.\inl[texbook]
Dans ce livre, nous nous concentrerons sur ce format. Toutes les macros simples
sont décrit dans~part~B. Si nous voulons commencer à écrire nos propres macros,
ce sera pour nous format simple avec un bon point de départ sur lequel nous
pouvons nous appuyer et Premièrement, nous pouvons nous inspirer de ce
modèle. \endpar

\TeX{} lit un fichier texte à son entrée et la sortie est générée (entre autres)
Binaire {\t DVI}. Pour une bonne compréhension de chaque fonction \TeX{}u est
utile pour séparer le chemin des structures de données du fichier texte d'entrée
pour sortir {\t DVI} sur les segments. \TeX{} en tant que programme par le Nous
les divisons en processeurs distincts qui communiquent entre eux une structure
de données définie d'une manière. Knuth a comparé ce processus traitement de
l'entrée à~\uv{digestion} \TeX{}u et conversation sur~yeux, bouche, pharynx,
estomac, etc. Nous allons parler de l'entrée du processeur, du jeton du
processeur, Développez le processeur et le processeur principal.

{\bf Processeur d'entrée}\inl[inputproc] lit les lignes individuelles du fichier
d'entrée et des processus se présente sous la forme de lignes indépendantes du
système d'exploitation utilisé.

{\bf Token Processor}\inl[tokenproc] Lit les lignes traitées à partir de
l'entrée de l'UC et crée séquence de {\it tokens}, qui sont des séquences de
contrôle ou Caractères individuels portant leur \uv{category} (terme introduit
dans~section~\rsec[jeton]).  La séquence de jetons de sortie n'est plus
décomposée en lignes.

{\bf Développer le processeur}\inl[expandproc] lit des jetons individuels et
distingue entre les jetons qui s'agrandira et restera inchangé. Par exemple,
caractères individuels. En outre, des séquences de contrôle primitives
subsistent (sauf pour exceptions) inchangée. A l'inverse, le processeur dilate
toutes les séquences de commande déclaré comme macros. Développer un jeton
signifie (en gros) dit) pour confondre un jeton avec une séquence d'autres
jetons.  V~nouvelle séquence de jetons peut être étendue à nouveau, ie~Le
processus d'extension se répète jusqu'à ce que tous les jetons soient des
séquences de contrôle primitives ou des caractères uniques qui ne sont pas
sujets à l'expansion.

Merci pour tous ces essais — et désolé d’avoir déserté les lieux quelques jours après avoir lancé moi-même le sujet. Chaque fois que j’ai un peu de temps libre, j’essaie de me lancer dans quelque chose que je me vois bientôt contraint de délaisser du fait du retour de prestations à honorer ou de problèmes divers.

Je ne peux évidemment pas évaluer la qualité de la traduction, ne parlant pas le tchèque et n’étant pas non plus grand connaisseur de TeX. Je trouve simplement le résultat plat et souvent maladroit, mais ce serait déjà une bonne base de travail : dans le passage que j’ai examiné, des reformulations plus naturelles me sont venues spontanément.

Cependant, je ne pourrais jamais me résoudre à réviser une traduction à partir d’un source TeX/LaTeX. C’est une torture pour mes yeux. Quand je révise un texte, je ne veux pas voir de commandes ni de notes interminables interrompre le flux du texte principal. Et j’ai besoin d’un minimum d’esthétisme, pour atténuer le caractère passablement ingrat de la révision de document : police à empattements, crénage, ligatures esthétiques, chiffres elzéviriens, espaces fines… Bref, je ne conçois de travailler que dans un logiciel de traitement de texte, en l’occurrence Writer de LibreOffice, auquel je suis habitué et qui dispose d’un interpréteur de regex assez puissant, notamment pour ce qui est des tests de position relatifs à des chaînes de longueur partiellement indéterminée : (?<=\\w{1,4}\\s)CHERCHE.

Si je prend l’exemple de TeX by topic, voici un extrait du code (non traduit) :

%\spoint Kerning
\subsection{Kerning}

Some combinations of characters should be moved closer
\term kerning\par
together than would be the case if their bounding boxes
were to be just abutted. This fine spacing is called kerning,
and a proper kerning is as essential to a font as the
design of the letter shapes.

Consider as an example\message{Kerning!}
\begin{Disp} `Vo' versus the unkerned variant `V\hbox{}o'\end{Disp}

Kerning in \TeX\ is controlled by information in the
\n{tfm} file, and is therefore outside the influence of the
user. The \n{tfm} file can be edited, however (see Chapter~\ref{TeXcomm}).

The \cs{kern} command has (almost) nothing to do with the
phenomenon of kerning; it is explained in Chapter~\ref{glue}.

%\spoint Italic correction
\subsection{Italic correction}

The primitive control symbol \verb-\/- inserts the `italic
\term italic correction\par\cstoidx /\par
correction' of the previous character or ligature.
Such a correction may be necessary owing to the definition
of the `bounding box' of a character. This box always
has vertical sides, and the width of the character as \TeX\
perceives it is the distance between these sides.
However, in order to achieve proper spacing  for slanted or
italic typefaces, characters may very well project outside their
bounding boxes. The italic correction is then needed if
such an overhanging character is followed by a 
character from a non-slanting typeface.
\awp

Compare for instance\message{Visible italic correction!}
\begin{Disp} `{\italic\TeX} has'
to `{\italic\TeX\/} has',
\end{Disp} where the second version was typed as
\begin{verbatim}
{\italic\TeX\/} has
\end{verbatim}

Avec vos outils de conversion, cela se présenterait comment dans Writer ? Et comment, à l’inverse, après vos corrections, peut-on retrouver le code d’origine ?

Le préambule comporte les définitions suivantes :

\def\term#1\par{\index{#1}}
\newenvironment{Disp}{\begin{quotation}}{\end{quotation}}
\def\n#1{{\tt #1}}
\def\cstoidx#1\par{\index{#1@\cs{#1}@}}
\def\italic{\it}

et a chargé le package makeidx.

Il y a cet autre passage pour lequel je serais curieux de savoir si votre système basé sur Writer permet de le gérer :

%\spoint Badness
\subsection{Badness}

When stretching or shrinking a list \TeX\ calculates 
\term badness! calculation\par
badness based on the
ratio between actual stretch and the amount of stretch
present in the line. See Chapter~\ref{line:break}
for the application  of badness to the paragraph algorithm.

%\tracingmacros=2 \tracingcommands\tracingmacros
The formula for badness of a list that is stretched (shrunk) is
\label{bad:form}\message{Check roman min}
\begin{disp} $\displaystyle b=\hbox{min}\left(10\,000,
100\times \left({\hbox{actual amount stretched (shrunk)}
\over\hbox{possible amount of stretch (shrink)}}\right)^3\right)$\end{disp}
In reality \TeX\ uses a slightly different formula that is
easier to calculate, but behaves the same. Since glue setting is
one of the main activities of \TeX, this must be performed
as efficiently as possible.

Ce que l’on est censé voir est ceci, pour la partie la plus intéressante de l’extrait :

(personnellement, j’aurais inversé les deux arguments de la fonction min pour éviter de lire une sorte de nombre à virgule, en bref j’aurais mis 100 fois machin, puis virgule 10000. L’espace après la virgule devrait éviter de faire la confusion, mais j’ai quand même lu dans un premier temps 10000,100 en pensant à une erreur de l’auteur dans l’emploi du séparateur décimal, supposition renforcée par le fait que dans le préambule, il y a \usepackage{german}).

Comment cette formule serait-elle rendue dans Writer ? Le logiciel Antidote est-il en mesure de traiter le texte contenu dans la formule ?

Ces questions ne sont pas un piège, mais puisque vous avez un flux de travail particulier, il s’agit de savoir si pour du texte hautement technique, votre outil est en mesure de le traiter.

Le document TeX in a nutshell, dont l’auteur est également Petr Olšák, cité ici-même pour son TeXbook naruby (https://forum.gutenberg-asso.fr/t/traductions-assistees/2959/11), serait-il intéressant pour se faire la main ? L’avantage est qu’il est « relativement » court, et en langue anglaise.

Voir https://ctan.org/pkg/tex-nutshell.

Il est composé avec OpTeX. Malheureusement, rechercher « OpTeX » sur un moteur de recherche renvoit vers une entreprise qui n’a rien à voir (trucs de sécurité, de détection d’intrusion).

Il serait certainement plus simple de renommer OpTeX (encore peu connu) que de tenter de rivaliser (au niveau des moteurs de recherche) avec une entreprise. Mais c’est à Petr Olšák que reviendrait ce choix… Le nom semble venir des initiales de Petr Olšák, sans doute pour faire un peu pareil que Leslie Lamport (d’où LaTeX), alors que la matière « latex » existait déjà depuis longtemps sous ce nom. Mais autant « latex » est tout en minuscule et les moteurs de recherche le distinguent bien de « LaTeX », autant entre « OpTeX », et une entreprise dont le nom s’écrit « Optex » ou « OPTEX », les moteurs de recherche semblent avoir plus de mal (restent les IA qui font le distingo).

Heureusement, on dispose déjà d’une belle ressource francophone sur OpTeX, directement dans la Lettre GUTenberg : https://publications.gutenberg-asso.fr/lettre/article/view/130.

Bref, pour en revenir à TeX in a nutshell, sa traduction serait-elle intéressante ? Au-delà du contenu, cela permettrait de découvrir les éventuels écueils, avant de s’attaquer à des documents plus lourd.

Malheureusement, rechercher « OpTeX » sur un moteur de recherche renvoit vers une entreprise qui n’a rien à voir (trucs de sécurité, de détection d’intrusion).

Heureusement, les personnes qui cherchent OpTeX savent a priori que ça a un rapport avec TeX et peuvent chercher sur un moteur plus adapté, par exemple ceux des sites du CTAN ou du TUG ! Il est même très probable que le texte qui les en a informés de son existence donne un lien vers le site.

Je n’ai pas une expérience très satisfaisante avec le moteur de recherche du CTAN… Voir par exemple ici : https://forum.gutenberg-asso.fr/t/tableofcontents-non-traduit-en-doctex/2813/2.

Le CTAN fait ce qu’il peut, avec des bénévoles, et le moteur de recherche Apache Lucene (https://en.wikipedia.org/wiki/Apache_Lucene).

Voir : https://ctan.org/credits (style production de cinéma)

Mais il arrive qu’il soit plus efficace de chercher sur un moteur de recherche généraliste pour trouver un élément présent sur le CTAN.

Si on saisit pile le nom d’un package, ça va ; c’est effectivement moins efficace quand on fait une recherche par mots-clés (mais j’aime bien les index par sujets).