GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-1798297-locale-C
into lp:widelands.
Commit message:
Fix fetching of translations when user locale is set to C. If the desired
Widelands locale does not exist, try to fall back to en_US.utf8 to make libintl
happy.
Requested reviews:
Widelands Developers (widelands-dev)
Related bugs:
Bug #1798297 in widelands: "Language selection broken if locale is set to C"
https://bugs.launchpad.net/widelands/+bug/1798297
For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-1798297-locale-C/+merge/358364
--
Your team Widelands Developers is requested to review the proposed merge of
lp:~widelands-dev/widelands/bug-1798297-locale-C into lp:widelands.
=== modified file 'src/base/i18n.cc'
--- src/base/i18n.cc 2018-08-12 06:47:11 +0000
+++ src/base/i18n.cc 2018-11-06 08:51:14 +0000
@@ -290,15 +290,26 @@
found = alt_str.find(',', 0);
}
if (leave_while) {
- setenv("LANG", locale.c_str(), 1);
+ setenv("LC_ALL", locale.c_str(), 1);
+ setenv("LANG", locale.c_str(), 1);
setenv("LANGUAGE", locale.c_str(), 1);
} else {
- log("No corresponding locale found - trying to set it via LANGUAGE=%s, LANG=%s\n",
- lang.c_str(), lang.c_str());
+ log("No corresponding locale found\n");
+ log(" - Set LANGUAGE, LANG and LC_ALL to '%s'\n",
+ lang.c_str());
+
setenv("LANGUAGE", lang.c_str(), 1);
setenv("LANG", lang.c_str(), 1);
- SETLOCALE(LC_MESSAGES, ""); // set locale according to the env. variables
- // --> see $ man 3 setlocale
+ setenv("LC_ALL", lang.c_str(), 1);
+
+ try {
+ SETLOCALE(LC_MESSAGES, "en_US.utf8"); // set locale according to the env. variables
+ // --> see $ man 3 setlocale
+ log(" - Set system locale to 'en_US.utf8' to make '%s' accessible to libintl\n", lang.c_str());
+ } catch (std::exception&) {
+ SETLOCALE(LC_MESSAGES, ""); // set locale according to the env. variables
+ // --> see $ man 3 setlocale
+ }
// assume that it worked
// maybe, do another check with the return value (?)
locale = lang;
_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~widelands-dev
More help : https://help.launchpad.net/ListHelp