GTK applications behave weird if locale is set to anything other than "C"

Rolf Schäuble mailinglists at rschaeuble.de
Fri Mar 16 10:04:39 PDT 2007


Well, I think I got the culprit: strxfrm().

Here's a small app that reproduces the problem for me:

int main(int argc, char** argv)
{
         char buf[512];
         int res = 0;

         if (argc > 1)
                 setlocale(LC_ALL, "");

         res = strxfrm(buf, "test", sizeof(buf));
         printf("%d, %s\n", res, buf);

         return 0;
}

When I execute it with LC_ALL=C, the output is "4, test"
When I execute it with LC_ALL=en_US or LC_ALL=de_DE.UTF-8, I get "4, ".

Now I just have to find out why strxfrm() doesn't work (and I guess  
this will be the hard part ;-) ).

Best regards
Rolf


Am 16.03.2007 um 14:56 schrieb Rolf Schäuble:

> Hi,
>
> I think we got an interesting fact here:
> On my PowerPC MacMini, it works, too, like on your PowerPC Mac.
> So the issue might be platform dependent.
>
> The output of locale is as expected, all variables set to  
> de_DE.UTF-8. locale -a outputs the expected list of supported  
> locales, which include de_DE.UTF-8.
>
> I had a look at /usr/share/locale, but I can't see anything wrong  
> here. The LC_COLLATE file is binary, so I have no clue what it  
> means. But I diffed it against the same file on my PowerPC MacMini,  
> and they are identical.
>
> Can anyone else with a Intel Mac confirm this behaviour?
> Just execute
> 	export LANG=en_US
> 	export LC_ALL=en_US
> 	# start any GTK application, open a file chooser dialog, and check  
> if the sorting is correct (maybe try it with different directories).
>
> Any ideas on how to proceed?
>
> Thanks
> Rolf
>
> Am 15.03.2007 um 23:52 schrieb petr.snyder at yahoo.co.uk:
>
>> Hi,
>>
>> @Yves
>> I've never seen the Gtk-Warning below, though I am using  
>> "de_DE.UTF-8". My open file dialog of Gnucash also shows  
>> everything in alphabetical order. Something else must be wrong.
>>
>> @Rolf, as you are using an Intel-Mac and I am sitting on a  
>> PowerPC: What's in your /usr/share/locale/ ?  That seems to be the  
>> place where GTK-apps get their localization stuff (I was able to  
>> fix Gnucash's missing EURO-Sign (€) by editing /usr/share/locale/ 
>> de_DE.UTF-8/LC_MONETARY. ) . What happens if you type "locale" and  
>> "locale -a" in a terminal?
>>
>> @all If GTK-apps read their language specific settings from usr/ 
>> share/locale, what is /opt/local/share/locale used for ????
>>
>> Best Regards, Peter
>>
>>
>>
>> ----- Original Message ----
>> From: Yves de Champlain <yves at macports.org>
>> To: Rolf Schäuble <mailinglists at rschaeuble.de>
>> Cc: macports-users at lists.macosforge.org
>> Sent: Thursday, 15 March, 2007 10:27:14 PM
>> Subject: Re: GTK applications behave weird if locale is set to  
>> anything other than "C"
>>
>> [ ... ]
>>
>> Hi
>>
>> first of all, any gtk app will kindly tell you that :
>>
>> Gtk-WARNING **: Locale not supported by C library.
>>          Using the fallback C locale.
>>
>> And the only way of dealing with many problems is indeed to avoid
>> localisation.
>>
>> But I do use LANG=fr and nothing else (no _CA, no LC_ALL) and many
>> things do work quite fine, including gimp.
>>
>> yves
>>
>> _______________________________________________
>> macports-users mailing list
>> macports-users at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo/macports-users
>>
>>
>>
>>
>>
>> 		
>> ___________________________________________________________
>> Inbox full of unwanted email? Get leading protection and 1GB  
>> storage with All New Yahoo! Mail. http://uk.docs.yahoo.com/ 
>> nowyoucan.html
>> _______________________________________________
>> macports-users mailing list
>> macports-users at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo/macports-users
>>
>
> _______________________________________________
> macports-users mailing list
> macports-users at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macports-users
>




More information about the macports-users mailing list