--- qt-x11-opensource-src-4.8.0/src/corelib/codecs/qtextcodec.cpp~ 2012-01-13 19:08:19.000000000 +0400 +++ qt-x11-opensource-src-4.8.0/src/corelib/codecs/qtextcodec.cpp 2012-01-13 19:16:34.000000000 +0400 @@ -631,10 +631,13 @@ static void setupLocaleMapper() // Get the first nonempty value from $LC_ALL, $LC_CTYPE, and $LANG // environment variables. QByteArray lang = qgetenv("LC_ALL"); - if (lang.isEmpty() || lang == "C") { + if (lang.isEmpty()) { + lang = qgetenv("LC_MESSAGES"); + } + if (lang.isEmpty()) { lang = qgetenv("LC_CTYPE"); } - if (lang.isEmpty() || lang == "C") { + if (lang.isEmpty()) { lang = qgetenv("LANG"); } --- qt-x11-opensource-src-4.8.0/src/corelib/codecs/qiconvcodec.cpp~ 2012-01-13 19:08:19.000000000 +0400 +++ qt-x11-opensource-src-4.8.0/src/corelib/codecs/qiconvcodec.cpp 2012-01-13 19:18:53.000000000 +0400 @@ -495,11 +495,15 @@ iconv_t QIconvCodec::createIconv_t(const // Get the first nonempty value from $LC_ALL, $LC_CTYPE, and $LANG // environment variables. char * lang = qstrdup(qgetenv("LC_ALL").constData()); - if (!lang || lang[0] == 0 || strcmp(lang, "C") == 0) { + if (!lang || lang[0] == 0) { + if (lang) delete [] lang; + lang = qstrdup(qgetenv("LC_MESSAGES").constData()); + } + if (!lang || lang[0] == 0) { if (lang) delete [] lang; lang = qstrdup(qgetenv("LC_CTYPE").constData()); } - if (!lang || lang[0] == 0 || strcmp(lang, "C") == 0) { + if (!lang || lang[0] == 0) { if (lang) delete [] lang; lang = qstrdup(qgetenv("LANG").constData()); }