[Tickets #8816] Re: includes a fr_FR.po translation instead of fr.po

bugs at horde.org bugs at horde.org
Thu Aug 19 13:54:52 UTC 2010


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/8816
------------------------------------------------------------------------------
  Ticket             | 8816
  Updated By         | Jan Schneider <jan at horde.org>
  Summary            | includes a fr_FR.po translation instead of fr.po
  Queue              | Horde Base
  Version            | Git master
  Type               | Bug
  State              | Feedback
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


Jan Schneider <jan at horde.org> (2010-08-19 09:54) wrote:

I have played around with this a bit more.

>>> Using a country part in a translation file is a discouraged practice
>>> except in very few cases (such as pt_BR).
>>
>> Discouraged by whom?
>
> Quoting again (from the same bug):
> <quote>
> For the vast majority of languages, using a country
> part is irrelevant. Canadians speaks French the same way than French
> do....or Austrians speak German the same way you do (or so closely
> that having separate translations is irrelevant).
>
> Less than a rule, this is general common practice. This does not
> prevent people to use more specialized translations when they feel
> it's appropriate.
>
> </quote>

Just because it is common practice doesn't mean that our way of doing  
things is wrong. The way we package translations works fine and  
doesn't prohibit anything that would be possible with packaging them  
in the proposed way.
The good news is that gettext seems to automatically do the "correct"  
thing and pick translation from either ll/ or ll_CC/ directories, no  
matter if the current locale is ll or ll_CC, i.e. any combination is  
possible.

> Also, using country part only when relevant avoid the use of aliases  
> like in nls.php and don't attach a language to a country.

Unfortunately not, because the bad news is, that even gettext is  
working fine with any locale format in the directory names, the system  
locale names don't. I can't use de.UTF-8 as a locale, it's not  
accepted. I have to use de_DE.UTF-8. This means we need to use the  
full ll_CC locale in Horde internally and keep the alias map.

>>> Using a fr_FR.po file instead of a fr.po file prevents users of fr_CA,
>>> fr_BE, fr_LU, fr_CH and all other existing and future locales for
>>> French to benefit from the French translation of the program.
>>
>> The Horde NLS class is taking care of this already.
>
> I didn't know that. This bug is then less relevant, it is just to  
> remove the need to maintain $nls['aliases'].

See above, we still need to keep the aliases. Though we probably  
wouldn't need the back-mapping anymore, i.e. the mapping from fr_CA to  
fr_FR, because if we use fr for the locale name, gettext already maps  
automatically from fr_CA to fr.

>>> The language does not vary among countries and, again, this is not the
>>> general practice for programs localization.
>>
>> But it may vary. There's different wordings between Swiss, Austrian,
>> and German German for example, or probably between the Iberian
>> Spanish and South American Spanish, let alone the different spelling
>> between British and American English.
>> Including the country name right from the start we are prepared for
>> adding country-specific alternate translations, and don't have to
>> rename the general-purpose translation when we add one.
>
> Yes, but with the no-country-by-default way of doing, you can put  
> only certain strings in the country specific po.
>
> Quoting again (from the same bug):
> <quote>
> For instance, the software can have a fr.po file which will be used as
> a general French translation....and a few fr_XX files for more
> specialized translations. But the common practice is first having a
> fr.po file (and, more important, a fr.mo file after build) before more
> specialized files.
> </quote>

I don't think this is what he meant, and I'm pretty sure it doesn't  
work how you describe it, though I'd have to test this. AFAIK you  
cannot add a fr_CA locale that only contains the differences to fr and  
have everything working automatically. As I understand it, and I think  
that's what the quote means, the only benefit is, that you can copy  
the original fr.po file to fr_CA.po and then overwrite those strings  
that you need. That would only help with starting a new, diverging  
translation though. As soon as you are trying to keep the translation  
up to date, you no longer can benefit from the original translation.  
Please correct me if I'm wrong or if gettext is working differently  
than I think.

So, to summarize, the "only" benefit from using ll instead of ll_CC  
locales is 1) because others do it, and 2) because we can remove the  
fr_CA -> fr_FR mapping logic. This might still justify the renaming of  
the locales, but it isn't nearly as important as suggested in the  
original bug report, right?






More information about the bugs mailing list