diff --git a/src/common/intl.cpp b/src/common/intl.cpp index 8b94852d84..402c20f26a 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -2650,7 +2650,22 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) /* static */ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) { - wxCFRef userLocaleRef(CFLocaleCopyCurrent()); + CFLocaleRef userLocaleRefRaw; + if ( wxGetLocale() ) + { + userLocaleRefRaw = CFLocaleCreate + ( + kCFAllocatorDefault, + wxCFStringRef(wxGetLocale()->GetCanonicalName()) + ); + } + else // no current locale, use the default one + { + userLocaleRefRaw = CFLocaleCopyCurrent(); + } + + wxCFRef userLocaleRef(userLocaleRefRaw); + CFTypeRef cfstr; switch ( index ) {