all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jean-Christophe Helary <jean.christophe.helary@traductaire-libre.org>
To: "Vincent Belaïche" <vincent.b.1@hotmail.fr>
Cc: Eli Zaretskii <eliz@gnu.org>,
	"emacs-devel@gnu.org" <emacs-devel@gnu.org>,
	"stefankangas@gmail.com" <stefankangas@gmail.com>
Subject: Re: Where to contribute manual translations ? (Re: Emacs-devel Digest, Vol 238, Issue 29)
Date: Sat, 30 Dec 2023 01:33:18 +0000	[thread overview]
Message-ID: <ED417CEA-BA8E-487A-B6F3-AAC2C656A2D3@traductaire-libre.org> (raw)
In-Reply-To: <PAXP192MB16085595A006D9F71B18398C849DA@PAXP192MB1608.EURP192.PROD.OUTLOOK.COM>

Hello Vincent,

> On Dec 30, 2023, at 7:58, Vincent Belaïche <vincent.b.1@hotmail.fr> wrote:
> 
> Dear Jean-Christophe,
> 
> I had a look at your git repo, and I also watched your presentation about OmegaT. I realize that all the manual translations that you have are po files that are output by OmegaT as a sequence of individual segment translations. I understand that some tool will then reassemble those segment to rebuild the Texinfo file, that can then be compiled to the usuer manuel.

I use po4a. po4a is a tool developed to help translators handle documents that are often updated. A lot of free documentation translations are made with po4a.

po4a’s workflow is similar to gettext in terms of converting the source files to po, updating the translations, converting back the po files to the source format.

In our case we use the texinfo → po → texinfo conversion allowed by po4a.
(There is a special case for the org manual.)

As you know, Emacs evolves a lot, and diffing the sources to see what has changed is not practical when it comes to translating, because it is not trivial to locate the position of a source diff in the translated document.

po4a helps with that because the po format is a list of bilingual chunks of the original document. When sentences have been added to the source or have been slightly modified, po4a finds them and creates a monolingual chunk that the translator will have to translate.

And then, po4a converts back the chunks into the original source file, ready for compilation.

> My translation of SES manual to French is a « hand-made » translation (as opposed to computer-aided), so it is a plain Texinfo file which I directly edited with an editor (it was Emacs, but any editor, and even MSWord used as a text editor could have been used).

Anything that happens on a computer is “computer aided” :) You just decide how much aid you force the computer to give you :)

For relatively stable documents such as books, a text editor is enough, and you can use separate documents to handle terminology, etc.

OmegaT is like a small IDE for translators. It automatically checks the terminology as you enter a new chunk, it checks for previously translated similar chunks, it checks technical errors (texi tags for ex., defined as regex), etc.

> Therefore I am not sure that your repo is the best place for me. For the time being I will therefore have it on the Emacs repo, when the conversation here converges on the right place and name.

“My” repo is just a workshop. The end product is intended to be part of the Emacs distribution in a way or another.

> I don't know how you can get my translation and use it in your OmegaT framework as the splitting into segments + segment naming is not done.

I know :)

It’s a process called “aligning” translations, which means associating chunks of the source document with chunks of the target document and thus creating the bilingual (translated) chunks that I mentioned above.

po4a creates the chunks from your texinfo file, and OmegaT takes the information in that file and associates it to the original English texinfo file. 

And you end up with a list of chunks that can be used in OmegaT.

> Also, I am not sure that I want to install and learn how to use OmegaT, as I am not a professional translator, and my aim was not so much as to produce a translation (although I have no doubt that it will be useful), but the side products of translating, that is improve the manual quality and my knowledge and understanding.

It’s a very good idea. Translators are indeed proofreaders and can detect a lot of issues in the original documents.

OmegaT is not a tool limited to professional translators. It is used in many free software communities in many language environments. Its basic use is pretty straightforward and really helps maintain consistency of translation over very large volumes of documents.

What would seem to matter (if anything does) is duplication of work. Emacs manuals have seen attempts at French translations (that I’m aware of) for at least 20 years and none has reached completion (even if some seemed to have come pretty close).

I’ve tried to “align” all the old translations to produce en/fr chunks that could be easily used. It was not trivial because finding which version of Emacs they were based on was not easy and because I could not find the original texinfo files.

The current state of the repo is that there are already a number of chapters that have been completed, or that only miss a few paragraphs.


> That is the same reason for which I translated to French the Unofficial LaTeX manual, that allowed plenty of minor improvements on the manual (both English & French versions).

Thank you :)

Unlike LateX2e, the Emacs manuals evolve a lot. Over the course of 3 years, I’ve counted about 180,000 additional words, excluding modifications of the original sources including typos or factual errors.

Any translation process that handles such frequent changes must have a way to easily identify the location in the translation where the modification must take place.

And that’s exactly where “computer aided translation” tools come into play. The way they use bilingual chunks as the object the translator handles makes it trivial to identify where new translations are needed.

Jean-Christophe


-- 
Jean-Christophe Helary @jchelary@emacs.ch
https://traductaire-libre.org
https://mac4translators.blogspot.com
https://sr.ht/~brandelune/omegat-as-a-book/





  reply	other threads:[~2023-12-30  1:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.35.1703782806.25325.emacs-devel@gnu.org>
2023-12-29  0:24 ` Where to contribute manual translations ? (Re: Emacs-devel Digest, Vol 238, Issue 29) Jean-Christophe Helary
2023-12-31  3:15   ` Richard Stallman
2023-12-31  3:29     ` Jean-Christophe Helary
2024-01-02  3:20       ` Richard Stallman
2024-01-02  3:24         ` Stefan Kangas
2024-01-02  3:32         ` Eli Zaretskii
2023-12-31  7:38     ` Eli Zaretskii
2023-12-29  1:23 ` Jean-Christophe Helary
2023-12-29  6:48   ` Eli Zaretskii
2023-12-29 14:21     ` Jean-Christophe Helary
2023-12-29 22:58       ` Vincent Belaïche
2023-12-30  1:33         ` Jean-Christophe Helary [this message]
2023-12-29  7:10   ` Emanuel Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ED417CEA-BA8E-487A-B6F3-AAC2C656A2D3@traductaire-libre.org \
    --to=jean.christophe.helary@traductaire-libre.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=stefankangas@gmail.com \
    --cc=vincent.b.1@hotmail.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.