[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [translate-pootle] Tool for translating via an intermediate language--reply to Bruno's questions


Some technical points that have nothing to do with gettext:

- You can have bilingual builds of OpenOffice or other products, and change from one language to the other. We do that already for some languages. The solution is not in putting two strings in the same language pack, but to include two language packs in the build.

- Being able to copy to the target string (translation) from Spanish rather than from English is a function of the localisation editor, not of the data format. Gettext or some other tools provide files that have the necessary information. The editor must learn how to use this information and make the translator's life as easy as possible... allowing ofr example, copying from the third language (Spanish in our case) to the translation field.



Amos Batto wrote:

Hi Bruno,

The features in instrans.php aren't recommendations
for how to change the PO/gettext format. Basically, I
was trying to let people on the list know that a tool
exists that they can use while they are waiting for
the the PO/gettext format to be updated.
Instrans.php is just a quick and dirty tool for using
the existing PO format, which is very inadequate for
translators who can't read English or work with
languages which borrow heavily from other languages. I wrote instrans.php for our group of Quechua translators to solve their problems.
--- Bruno Haible <bruno@clisp.org> wrote:

Hello Amos,

You can download it:

See the documentation for the scipt at:
Thank you for making this available. Yesterday I
looked at it, but am a
bit confused about the purpose of some features, and
therefore whether
I should consider putting these features into GNU

The current plan is to use a syntax like

 msgid "English"
 msgid[es] "Spanish"
 msgstr "Translation"

I would love to see this added to PO/gettext! It would
help our quechua translations a lot.

- --msgstr: "Insert the translated phrases en the
msgstrs which are empty."
 This sounds to be useful for dialects, but the
usual way of working
 with dialects is that the user has several entries
 variable, e.g.   LANGUAGE="de_CH:de".

This is very useful for languages which borrow heavily
from other languages.  In Quechua, almost every word
related to computers is borrowed from Spanish, so this
isn't a dialectal difference. (I would really piss off
Andean linguists if I dared call Quechua a dialect of
The dialectual specification is useful in some cases,
but not in this case.  Every dialect of Quechua is
going to use "computadora" (the Spanish word for
If you want to accomodate indigenous languages like
Quechua which borrow heavily from dominate world
languages like Spanish, my suggestion is to create a
flag to copy directly from the dominant language to
the target language (if the msgstr is an empty
string). Something like: COPY language

If no language is specified, then it would default to
the language of the msgid. If the translator
For instance:

#, copy es
msgid "Print Layout"
msgid[es] "Diseño de impresión"
msgstr ""

Gettext would copy "Di&seño de impresión" into the

#, copy
msgid "Print Layout"
msgid[es] "Diseño de impresión"
msgstr ""

Gettext would copy "Print Layout" into the msgstr.

#, copy es
msgid "Print Layout"
msgid[es] "Diseño de impresión"
msgstr "Nit'ipaq qhawana"

In this case, gettext would ignore the COPY flag and
use the string "Nit'ipaq qhawana" found in the msgstr.
(Maybe gettext could give a warning message in this
case to alert the translator that he/she forgot to
delete the COPY flag.)

Having a COPY flag in the PO/gettext format would make
life much simpler for our group of translators.
Roughly 15% to 20% of the strings in our Quechua
translation of AbiWord were direct copies from the
Spanish. Everytime the Spanish PO translation changes,
we have to laboriously go through our Quechua PO file
and copy every change.  It is a real pain in the neck.
If gettext would do it automatically, it would save
us a lot of time.
I noticed that PoEdit has a function (Alt + C) to
directly copy the string from the msgid to msgstr, so
I think that a COPY flag would be used by a lot of
translators (not just people working with indigenous
languages like Quechua).  When the msgid changes, the
msgstr will automatically change as well, and the
translator won't have to laboriously change it
everytime.  (In this case, the PO phrase will still be
marked with FUZZY to alert the translator that the
msgid has changed, but he/she won't have to do
anything except review the phrase to make sure that
he/she still wants to directly copy the msgid into the

Thus no need to use a separator, no need for
- What's the purpose of --comment versus
--bilingual? - Is --statusbar something of general interest?
- What's the purpose of --strip?

I guess my documentation isn't very clear. The
--strip, --replace, --bilingual, and --statusbar
options in instrans.php are only useful for
translators who want to make bilingual programs.
These are features that are probably only useful when
dealing with indigenous or minority languages which
are mostly oral and rarely written. In the case of
Quechua, very few Quechua-speakers know how to read
and write their native language. In school they only
learn how to read and write in Spanish.  It is
probably the same for most African languages.  With
the exception of a few languages like Swahili most
Africans are only trained to read and write in English
or French or Portuguese, not the language that they
generally speak.

The --comment option is for inserting the PO phrase
from an intermediate language into the comment field
of the PO file. This is used by translators who can't
read English. For instance, we inserted the Spanish
translations into the Quechua PO files like this:

# [es] Diseño de impresión
msgid "Print Layout"
msgstr "Nit'ipaq qhawana"

The --bilingual option is used when you want the
msgstr to contain two languages.  For instance, if you
want to have both a Quechua and Spanish translation in
the msgstr:

msgid "Print Layout"
msgstr "Nit'ipaq qhawana | Diseño de impresión"

We needed this option for two reasons: 1. A lot of owners of cyber-cafes in the Andes can't
speak Quechua, so the program needs to be bilingual or
they won't install it. They also have to support the
program, and they can't help the user, if they can't
read the menus. 2. A lot of Quechua-speakers can only read and write
in Spanish, so they need the Spanish translation to
learn to read their native language.  It sounds funny,
but this is the sad reality of most indigenous
language in the world.
What we found, however, is that the --bilingual option
made long strings which often didn't fit in dialog box
buttons. So we designed the --statusbar option to
insert the translation in the statusbar. For instance,
the Menus would be in Quechua but the Status bar
message would be the Spanish translation of the menus.

The problem with copying phrases from the menu to the
statusbar is that the menus strings contain variables
(ex: %s) and hotkeys (ex: &), but the statusbar
doesn't contain these things.  So I designed the
--strip option to get rid of hotkeys and the --replace
option to replace variables.
OK, hopefully that clarifies.

If PO/gettext is changed to add msgid[language], then
there is no need for the --comment option.

The rest of the options are only useful for creating
bilingual programs. I'm not sure how many people will
be wanting to do this in the future.  What do you guys
Maybe the gettext documentation could have note
pointing to instrans.php (or some other tool) for
translators who want to create bilingual programs.
There is a real need for bilingual programs. For
instance in Latin America, speakers of Quechua,
Aymara, Maya, Guarani, Mapuche, ...etc. would like to
see bilingual programs for their language.

Amos BAtto

Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
Translate-pootle mailing list

Reply to: