[i18n] Converting the Czech translation from ISO 8859-2 to UTF-8

Michael Grafnetter grafnetter at dekanat.mff.cuni.cz
Thu Jan 15 10:56:00 UTC 2015


Dne 15.1.2015 11:37, Jan Schneider napsal(a):
>
> Zitat von Michael Grafnetter <grafnetter at dekanat.mff.cuni.cz>:
>
>>> Citat af Jan Schneider <jan at horde.org>:
>>> Sorry, I still don't follow.
>>
>> Sorry, my mistake, the problem does not lie in the input encoding, but
>> in the output encoding. Let me give you an example from the czech
>> nag.po file:
>>
>> msgid "_List Tasks"
>> msgstr "_Seznam úkolů"
>>
>> This works correctly, the letter S gets underlined in Horde and works
>> as an access key, ALT+S. The problem occurs, if you try to do
>> something like this:
>>
>> msgid "_List Tasks"
>> msgstr "Seznam _úkolů"
>>
>> Horde displays this string AS IS, "Seznam _úkolů", instead of
>> underlining the letter ú. And the shortcut ALT+U does not work. This
>> means that characters with diacritical marks cannot be used as access
>> keys.
>>
>> (I am aware that this is not the best example, because in this
>> particular case letter S gives more sense as an access key.)
>>
>> File /horde/config/nls.php contains this code snippet:
>>
>> 'charsets' => array(
>> ...
>> 'cs_CZ' => 'ISO-8859-2',
>> ...),
>>
>> If you changed it to
>>
>> 'cs_CZ' => 'UTF-8',
>>
>> then the PO file could contain this:
>>
>> msgid "_List Tasks"
>> msgstr "Seznam _uúkolů"
>>
>> Horde would render the string as "Seznam úkolů (U)" and ALT+U would
>> work as access key.
>
> I see now where you are coming from. OTOH this is a much uglier and
> space consuming access key markup that was originally intended for
> languages without any latin characters whatsoever.
>

I cannot argue with that, it really is uglier. But is there any better 
way to handle this? Unfortunately, the Czech language has many words 
that start with letters with diacritical marks.

And I still prefer the UTF-8 encoding, so my current configuration in 
nls.local.php contains these lines:

// Change the encoding from ISO-8859-2 to UTF-8
$horde_nls_config['charsets']['cs_CZ'] = 'UTF-8';

// Do not treat UTF-8 as multibyte charset
unset($horde_nls_config['multibyte']['UTF-8']);

I did not find a way to bind the "multibyteness" to a locale instead of 
charset.




More information about the i18n mailing list