Index: enigma-1.20/src/nls.cc =================================================================== --- enigma-1.20.orig/src/nls.cc 2014-01-23 18:58:10.000000000 +0100 +++ enigma-1.20/src/nls.cc 2014-01-23 19:01:44.000000000 +0100 @@ -2,6 +2,7 @@ #include "main.hh" #include "ecl_system.hh" +#include #include #include #include @@ -14,26 +15,38 @@ static char lang_env[256]; #endif -static void my_setenv (const std::string &var, const std::string &val) +static char localeutf[256]; + +static void my_setenv (const char* var, const char* val) { #if defined (HAVE_SETENV) - setenv(var.c_str(), val.c_str(), 1); + setenv(var, val, 1); #elif defined (HAVE_PUTENV) - snprintf (lang_env, sizeof(lang_env), "%s=%s", var.c_str(), val.c_str()); + snprintf (lang_env, sizeof(lang_env), "%s=%s", var, val); putenv(lang_env); #endif } void nls::SetMessageLocale (const std::string &language) { - if (language != "") - my_setenv ("LANG", language); + if (language != "") { + if (setlocale (LC_MESSAGES, language.c_str()) != NULL) { + my_setenv ("LANG", language.c_str()); + } else { + // Second attempt: lang + .UTF-8 + snprintf(localeutf, sizeof(localeutf), "%s.UTF-8", language.c_str()); + if (setlocale (LC_MESSAGES, localeutf) != NULL) { + my_setenv ("LANG", localeutf); + } + } + } #if defined(ENABLE_NLS) && defined(HAVE_LC_MESSAGES) // Hack to fool libintl into changing the message locale more than // once setlocale (LC_MESSAGES, "C"); setlocale (LC_MESSAGES, ""); //language.c_str()); + #endif std::string li = ecl::SysMessageLocaleName(); Index: enigma-1.20/src/nls.hh =================================================================== --- enigma-1.20.orig/src/nls.hh 2014-01-23 18:43:25.000000000 +0100 +++ enigma-1.20/src/nls.hh 2014-01-23 19:00:51.000000000 +0100 @@ -27,7 +27,7 @@ const Language languages[] = { { "default", "", "par" }, { "Deutsch", "de_DE", "flags25x15/de" }, - { "English", "en_EN", "flags25x15/gb" }, + { "English", "en_GB", "flags25x15/gb" }, { "Español", "es_ES", "flags25x15/es" }, { "Français", "fr_FR", "flags25x15/fr" }, { "Italiano", "it_IT", "flags25x15/it" },