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.