locale messages gnu patch 13631
Jonathan Wakely
jwakely.gcc@gmail.com
Wed Jan 5 21:26:00 GMT 2011
On 5 January 2011 21:09, François Dumont wrote:
> On 01/03/2011 09:40 PM, Jonathan Wakely wrote:
>>
>> On 3 January 2011 20:24, Jonathan Wakely<jwakely.gcc@gmail.com> wrote:
>>
>>>
>>> On 3 January 2011 20:20, François Dumont wrote:
>>>
>>>>
>>>> So, anyone can run the test for me ?
>>>>
>>>
>>> Sure, I'll try it now.
>>>
>>>
>>
>> a.out: 4.cc:56: void test01(): Assertion `s01 == "secondes"' failed.
>>
>> I only have the English catalog for okular
>>
>> $ locate okular.mo
>> /usr/share/locale/en_GB/LC_MESSAGES/okular.mo
>>
>> $ locate '*fr*pulseaudio.mo'
>> /usr/share/locale/fr/LC_MESSAGES/pulseaudio.mo
>>
>>
>
> This is a good first result, we already see that the 2 catalogs have
> different ids.
Should the first VERIFY have failed if I don't have the okular catalog?
VERIFY( cat_okular >= 0 );
> Could you change the test to target a catalog you have a use
> an existing entry in this catalog.
>
> If you don't have time here is a modified version of the test that will show
> if at least access to the french catalog of pulse audio is working.
a.out: ./4-2.cc:59: void test01(): Assertion `s01 == "secondes" || s02
== "Serveur de Son PulseAudio"' failed.
I changed it to print out the locale it opens and the translated strings:
const char ln[] = "de_CH";
std::cout << ln << std::endl;
locale loc_fr = locale(ln);
...
string s01 = mssg_fr.get(cat_okular, 0, 0, "seconds");
string s02 = mssg_fr.get(cat_pulseaudio, 0, 0, "PulseAudio Sound Server");
std::cout << s01 << std::endl;
std::cout << s02 << std::endl;
and nothing is being translated:
fr_FR
seconds
PulseAudio Sound Server
a.out: ./4-2.cc:66: void test01(): Assertion `s01 == "secondes" || s02
== "Serveur de Son PulseAudio"' failed.
Aborted (core dumped)
I have pulseaudio.mo in fr/LC_MESSAGES not fr_FR/LC_MESSAGES, so in
case that matters I changed it to use the de_CH locale, as I have
de_CH/LC_MESSAGES/pulseaudio.mo, but I get the same result:
de_CH
seconds
PulseAudio Sound Server
a.out: ./4-2.cc:66: void test01(): Assertion `s01 == "secondes" || s02
== "Serveur de Son PulseAudio"' failed.
Aborted (core dumped)
More information about the Libstdc++
mailing list