[vdr] Re: i18n done with gettext

Lucian Muresan lucianm at users.sourceforge.net
Fri Nov 18 17:08:54 CET 2005

Iwan Davies wrote:
> I'm thinking particularly of problems I've experienced in the past in 
> various localisation projects, where, for example, the phrases "von" and 
> "bis" have been reused in different contexts wth represent different 
> meanings ("von Datum"/"bis Datum" and "von Uhrzeit"/"bis Uhrzeit"). In 
> French, for example, the first "von"/"bis" would be translated 
> "du"/"jusqu'au" and the second "de"/"jusqu'à". 
> In English there is no problem in this particular example, but another 
> situation could see the German use the same noun as a command an an option 
> setting, whereas English would require the command to be translated as an 
> imperative and the setting as a noun. The point is, the plugin developer 
> has no way of knowing how reuse of strings (and duplicate use of string 
> IDs) will affect the quality of the translation, so the safest approach is 
> to assign each string a (G)UID. Incorporating the plugin name in this UID 
> ensures it is globally unique for vdr. On the other hand, judicious use of 
> the tag system in vdr would have the same effect, as long as you could be 
> sure that each tag is unique and none are reused.

This kind of problem is taken care of at present in VDR's i18n.c by
preceding such pharases by an arbitrary string describing the context in
which it is used, separated by a character chosen by Klaus, '$' from the
actual english string. In that case, translations may be different and
are also identified properly, and everything before the '$' character is
ignored. But as you said, a developer may anticipate such situations,
but cannot do this for all cases and all languages that may join the
list, so there will be feedback from users who notice some bad sounding
translation in a certain context, and it will be fixed by splitting that
english strings by the scheme already used by Klaus. And this shouldn't
change if gettext will ever be used.

BTW, while writing a plugin only meant for developers, which extracts
all phrases known at present in VDR[*] and generates po-Files for all
the known languages at present, after loading the po-files in poEdit, I
noticed that there are 5 duplicate strings, which even in the classical
concept are redundant, one of them never gets used, but that will be
another posting.

Basicly I'm close to trying gettext i18n, will keep you updated, I hope
this weekend.


[*] ...and as a next step, from any loaded plugin, so the old
translations are already in the gettext world. Anyway, if plugin devs
will ever follow this, and they have to test their plugins anyway, I'm
seeing no problem with doing this extraction at runtime instead of
parsing the source files). The po-files are gnerated with all the
message IDs and their translations and even with the "note
leading/trailing blanks, singular/plural" comments, header information
with translation authors for VDR (for plugins I think I will assume for
the respective languages the same translators as in VDR, if a
translation is available).
This way we will have up-to-date po-files, in sync with the "classic"
VDR phrases anytime (and if) the switch to gettext will be ever done, as
in the mean time updates to the "classic" translations may still come.

More information about the vdr mailing list