[Решено] Qt. Неверное значение QLocale::system().name()

Здравствуйте !

Имеем:

uname -a
Linux igoral5 2.6.36-gentoo-r5 #1 SMP Wed Dec 22 13:23:26 MSK 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux

Установлена библиотека Qt:

[ebuild   R   ] x11-libs/qt-gui-4.6.3-r2  USE="accessibility cups dbus exceptions glib gtk mng qt3support tiff xinerama (-aqua) -debug -nas -nis -pch -raster -trace" 0 kB 

Для выбора файла перевода, я в своем приложении решил использовать значение возвращаемое QLocale::system().name(), но к сожалению у меня всегда возвращается "C", хотя в системе установлена локаль:

locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

И система полностью руссифицирована (по крайней мере я так думаю).

Причем, если жестко задать в коде наименование файла перевода, то интернационализация приложения происходит нормально.
Почему QLocale::system().name() возвращает неправильное значение ?

Заранее благодарен за ваши ответы, с уважением Алимов Игорь.

попробуй задать

попробуй задать LC_ALL="ru_RU.UTF-8" , некоторые приложения не выбирают русский если оно не задано.

Спасибо, теперь даже в Amarok

Спасибо, теперь даже в Amarok у сценария Ultimate Lyrics заработала русская локализация.

Подтверждаю

Только что было выполнено qmake -project && qmake && make в каталоге с

#include <QLocale>
#include <QMessageBox>
#include <QApplication>
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QMessageBox::about(0, "locale is",QLocale::system().name());
}

так вот ./qt-example даёт C
а LC_ALL="ru_RU.UTF-8" ./qt-example даёт ru_RU

см http://bugreports.qt.nokia.com/browse/QTBUG-9451

а эта строка - это просто подпись

Qt. Неверное значение QLocale::system().name()

Спасибо, ваш совет помог решить проблему. У меня теперь Qt Creator стал с русским интерфейсом.

С уважением, Алимов Игорь.

sources

http://bugreports.qt.nokia.com/browse/QTBUG-15321

если почитаете исходники, то там довольно странное написано в том месте, где ресолвится локаль. Написал патч, вроде правит.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".