[Решено] Qt. Неверное значение QLocale::system().name()
igoral 3 января, 2011 - 15:16
Здравствуйте !
Имеем:
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
в каталоге стак вот
./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
если почитаете исходники, то там довольно странное написано в том месте, где ресолвится локаль. Написал патч, вроде правит.