From b53e773fbb49acddf14013896c067445f13859ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 8 Feb 2018 21:28:44 +0100 Subject: [PATCH] Copy locale suffix to new `LANG` setting (by @heckflosse, #4319) --- rtgui/multilangmgr.cc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/rtgui/multilangmgr.cc b/rtgui/multilangmgr.cc index b4896d69a..5ccac1566 100644 --- a/rtgui/multilangmgr.cc +++ b/rtgui/multilangmgr.cc @@ -114,11 +114,22 @@ const LocaleToLang localeToLang; void setGtkLanguage(const Glib::ustring &language) { - auto l = localeToLang.getLocale(language); + std::string lang = localeToLang.getLocale(language); + + if (lang != "C") { + const std::string env_lang = getenv("LANG"); + if (!env_lang.empty()) { + const std::string::size_type suffix_pos = env_lang.find_first_of("."); + if (suffix_pos != std::string::npos) { + lang += env_lang.substr(suffix_pos); + } + } + } + #ifdef WIN32 - putenv(("LANG=" + l).c_str()); + putenv(("LANG=" + lang).c_str()); #else - setenv("LANG", l.c_str(), true); + setenv("LANG", lang.c_str(), true); #endif }