From d0b7b0d228fe1bd57cac25d7d068aefcdcf0b3bb Mon Sep 17 00:00:00 2001 From: Jens Verwiebe Date: Wed, 21 Nov 2012 13:54:54 +0000 Subject: OSX/locale: workaround to get osx system locale from user defaults --- intern/locale/boost_locale_wrapper.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'intern') diff --git a/intern/locale/boost_locale_wrapper.cpp b/intern/locale/boost_locale_wrapper.cpp index ec2976f19b9..7b317da1edf 100644 --- a/intern/locale/boost_locale_wrapper.cpp +++ b/intern/locale/boost_locale_wrapper.cpp @@ -30,6 +30,10 @@ #include "boost_locale_wrapper.h" +#if defined (__APPLE__) + #include "stdio.h" +#endif + static std::string messages_path; static std::string default_domain; @@ -60,7 +64,19 @@ void bl_locale_set(const char *locale) std::locale::global(gen(locale)); } else { +#if defined (__APPLE__) + // workaround to get osx system locale from user defaults + FILE* fp; + char result [10]; + char osx_locale [10]; + fp = popen("defaults read .GlobalPreferences AppleLocale","r"); + fread(result,1,sizeof(result),fp); + fclose (fp); + sprintf(osx_locale, """%s.UTF-8""", result); + std::locale::global(gen(osx_locale)); +#else std::locale::global(gen("")); +#endif } // Note: boost always uses "C" LC_NUMERIC by default! } -- cgit v1.2.3