Yves,

No, unfortunately querying NSLocaleDecimalSeparator and friends  won’t help. 
GnuCash depends at least partly on libc functions like printf (and their C++ 
equivalents) for formatting, and those functions in turn depend on a locale 
being set in the environment. They use that locale to retrieve information like 
decimal separator from the files in /usr/share/locale. In the case at hand, 
LC_MONETARY. The fact that NSLocaleLanguageCode returns en_CA instead of fr_CA 
causes the wrong LC_MONETARY to be consulted.

Given that GnuCash needs to work on Windows and other Unixes besides MacOS, the 
only alternative that I know of is ICU. WebKit uses it so it’s already a 
dependency but it would be a lot of work to convert; the API would need to be 
made available to Scheme as well for the reports because Guile also uses libc 
localization. It’s likely a multi-year project for a single programmer. (Well, 
multi-month at 40 hours/week.) Wanna volunteer?

Regards,
John Ralls



> On Jul 2, 2018, at 7:36 PM, Yves Forget <yves_for...@yahoo.ca> wrote:
> 
> Hi John,
> 
> Running from the terminal I still get period.  In the terminal I got the 
> following trace.
> 
> (process:1976): gnc.gui-WARNING **: 18:35:55.003: [mac_set_languages()] 
> Language list: en:fr_CA:en_CA:C
> 
> I just downloaded the sources from GitHub, and looked at 
> [mac_set_languages()].  Foundation offers global variables 
> NsLocaleDecimalSeparator, NSLocaleGroupingSeparator and 
> NSLocaleCurrencySymbol, among others.  These variables would bring directly 
> the values mac_set_languages() is trying to get.  Furthermore, if a user 
> changes the decimal separator in the Advanced panel of the Language and 
> Region system preferences, gnu cash would get the expected separator instead 
> of the locale’s default separator.  Is it something that could be changed 
> without breaking a lot of things in the app ?
> 
> Please don’t hesitate to tell me if I’m completely wrong…
> 
> Thanks,
> 
> Yves
> 
>> Le 2 juill. 2018 à 18:43, John Ralls <jra...@ceridwen.us 
>> <mailto:jra...@ceridwen.us>> a écrit :
>> 
>> I tested this a bit in the debugger and I with French as the primary 
>> language and Canada as the country [currentlocale objectForKey:  
>> NSLocaleLanguageCode] insists that the code in en, not French. If I tell 
>> System Prefs I'm in France it gets the right answer, so it might be an Apple 
>> bug.
>> 
>> Unfortunately setting LANG in the environment, though it will set the 
>> interface language, doesn't seem to change the number display, so there 
>> doesn't seem to be a way to force it at present.
>> 
>> Regards,
>> John Ralls
>> 
>> 
>>> On Jul 2, 2018, at 2:59 PM, John Ralls <jra...@ceridwen.us 
>>> <mailto:jra...@ceridwen.us>> wrote:
>>> 
>>> If you run GnuCash from a Terminal prompt do you get the right separator?
>>> 
>>> Regards,
>>> John Ralls
>>> 
>>>> On Jul 2, 2018, at 1:42 PM, Yves Forget via gnucash-user 
>>>> <gnucash-user@gnucash.org <mailto:gnucash-user@gnucash.org>> wrote:
>>>> 
>>>> System Preferences/Language and Region says Region = Canada and language = 
>>>> french.  Advanced shows decimal separator is comma and thousands separator 
>>>> is space.  (These are default values for French Canada).
>>>> Environment variable LANG=fr_CA.UTF_8
>>>> OpenOffice correctly uses comma as decimal separator.
>>>> Is Gnucash supposed to use the parameters from the locale ?  Is there a 
>>>> way to force it ?
>>>> Thanks,
>>>> Yves Forget
>>>> 
>>>>  Le lundi 2 juillet 2018 15h48, R. Victor Klassen <rvklas...@gmail.com 
>>>> <mailto:rvklas...@gmail.com>> a écrit :
>>>> 
>>>> 
>>>> Maybe in Quebec it is a comma.  In the rest of the country it is a period. 
>>>>  
>>>> 
>>>> There should be a different locale for fr-canada than for en-canada.  I 
>>>> don’t know what else would differ across locales though.
>>>> 
>>>>> On Jul 2, 2018, at 3:42 PM, Yves Forget via gnucash-user 
>>>>> <gnucash-user@gnucash.org <mailto:gnucash-user@gnucash.org>> wrote:
>>>>> 
>>>>> I’m new to GnuCash and just installed GnuCash 3.2 on Mac. OS X 10.13
>>>>> Gnucash uses the period as decimal separator instead of my locale’s
>>>>> separator.  Here in Canada it should be comma.
>>>>> Should Gnucash use the decimal separator of my locale, or is it always
>>>>> period ?  Is there a way to configure it within GnuCash ?
>>>>> Thanks,
>>>>> Yves Forget
>>>>> _______________________________________________
>>>>> gnucash-user mailing list
>>>>> gnucash-user@gnucash.org <mailto:gnucash-user@gnucash.org>
>>>>> To update your subscription preferences or to unsubscribe:
>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>>> If you are using Nabble or Gmane, please see 
>>>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>>> -----
>>>>> Please remember to CC this list on all your replies.
>>>>> You can do this by using Reply-To-List or Reply-All.
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> gnucash-user mailing list
>>>> gnucash-user@gnucash.org <mailto:gnucash-user@gnucash.org>
>>>> To update your subscription preferences or to unsubscribe:
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>> If you are using Nabble or Gmane, please see 
>>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>> -----
>>>> Please remember to CC this list on all your replies.
>>>> You can do this by using Reply-To-List or Reply-All.
>>> 
>>> _______________________________________________
>>> gnucash-user mailing list
>>> gnucash-user@gnucash.org <mailto:gnucash-user@gnucash.org>
>>> To update your subscription preferences or to unsubscribe:
>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>> If you are using Nabble or Gmane, please see 
>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>> -----
>>> Please remember to CC this list on all your replies.
>>> You can do this by using Reply-To-List or Reply-All.
>> 
> 

_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to