Re: Proposal for declinations in gettext



>
>
>>It is no problem that the "of" in "king of hearts" is not translated.
>>you can just omit it, as in
>>
>>msgid "Move %s of %s to stack"
>>msgstr "Flyt %2$s %1$s til bunken"
>>
>>which also makes use of the parameter positioning reordering of printf.
>>    
>>
>
>Of course, it would not work that well for German. You could
>concatenate "%2$s%1$s" but that would require translating "king" as
>"könig". Unfortunately, as a noun, the proper translation would be
>"König"; lower-casing only happens for the compound word.
>

Completely agree here. Of course, you could do "%2$s-%1$s", i.e. 
Herz-König, which will definitely be understood, though it doesn't 
change that the correct translation would be Herzkönig. But, that wasn't 
necessarily the point anyway, since you don't necessarily have "Move %s 
of %s to stack" as a msgid. Instead, you might have the following:

#: 1
msgid "Move %s to stack"
msgstr ""

#: 2
msgid "%s of %s"
msgstr ""

#: 3
msgid "King"
msgstr ""

#: 4
msgid "Hearts"
msgstr ""


Where 3 and 4 are substituted into 2, before 2 is substituted into 1. 
How do you get rid of the 'of' here? You can only translate "%s of %s" 
to "%2$s-%1$s", iff you are certain there isn't any "x of y" where 'x' 
not in (Two, Three, ...., King, Aces) and 'y' not in (Diamonds, Hearts, 
Spades, Clubs). As such, you do require context, as following:

#: 2
msgid "[playing card]%s of %s"
msgstr ""


Now, while this might still appear easier for the engineer from a 
development perspective, the engineer, most and for all, *must know* 
that this context is required in the first place. Since whether someone 
is the Queen of Hearts or whether we have the playing card Queen of 
Hearts, it's still 'Queen of Hearts' and '%s of %s' is still '%s of %s'. 
In a translation, on the other hand, that might be completely different 
(e.g. for German it would be 'Königin der Herzen' and '[playing 
card]Herzkönigin'). So, do we expect the engineer to know whether a 
context is required in the translation or not, or do we simply expect 
the engineer to just add a context for everything now? An alternative 
might be that we do require a context for every part of a composed 
string. Then, the engineer would simply have to think of a way to 
describe what exactly s/he means, so that the translator will later on 
know what exactly the engineer referred to, i.e. that the translator 
knows in which whole the part is substituted into.

Question now is, is it really easier for an engineer to consider such 
context issues, or to simply use the printf-method to simply generate 
all complete msgids and let the translator handle the rest?

If you have everything in one string, then you don't need to worry about 
whether translators know that you can reorder %s, %s with %2$s, %1$s either.

And another considerable advantage of having everything in one string is 
following:

#: 1
msgid "Move King of Hearts to stack"
msgstr "Lege den Herzkönig auf den Stapel"

#: 2
msgid "Move Queen of Hearts to stack"
msgstr "Lege die Herzdame auf den Stapel"


While it might be alright in english to say "Move %s of %s to stack", it 
really sounds wrong in some other languages not to say "Move the %s of 
%s to stack". And I don't see how that could be covered with any kind of 
composed string, since whether it's 'die' or 'der' entirely depends on 
the noun, i.e. on 'Königin' or 'König'. IMO, considering *all* issues 
and trying to create a system that is really good for most of the 
languages, rather than going the easy way that works for all languages, 
I personally believe to be a waste of ressources. And, in addition, I 
believe that the overall quality of the translations would suffer, since 
the whole is more than the sum of its parts, and this goes for texts in 
particular.

And no, I am not talking about card games.

Cheers,
Bernd

-- 
Dr. Bernd R. Groh                     Email: bgroh@redhat.com
I18n/L10n Engineering                 Phone: +61 7 3872 4847
Red Hat Asia-Pacific                  Fax  : +61 7 3257 4800

"Everything we know is an illusion, nothing we know is real,
 nothing real we can know, illusion is what we call reality."

        Disclaimer: http://apac.redhat.com/disclaimer





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