LINUX.ORG.RU

[Qt4] грабли с системной локалью


0

0

Знатоки, помогите, пожалуйста, что-то я совсем не догоняю.

#include <QLocale>
.....
qDebug(qPrintable(QLocale::c().name()));
/// выводит букву C
qDebug(qPrintable(QLocale::system().name()));
/// выводит тоже букву C

ЧЯНТД??? (ушёл биться головой об стену)

★★★★★

А какое поведение ожидается? Какая локаль реально в системе? Что говорит вызов 'locale'?

(и да, ОС какая?)

Sectoid ★★★★★
()
Ответ на: комментарий от Sectoid

steplton@steplton ~ $ locale
LANG=ru_RU.UTF-8
LC_CTYPE=«ru_RU.UTF-8»
LC_NUMERIC=POSIX
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=
====================================
steplton@steplton ~ $ uname -a
Linux steplton 2.6.28.10-calculate #1 SMP Mon Jun 15 07:32:31 MSD 2009 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ AuthenticAMD GNU/Linux

Вобщем, недоГенту.

Steplton ★★★★★
() автор топика
Ответ на: комментарий от Steplton

Кстати...

А какое поведение ожидается?

Естественно, хочется получить текущую локаль ru_RU....

Steplton ★★★★★
() автор топика
Ответ на: комментарий от name_no

Пишут, что да. Во всяком случае, из того, что я нарыл в интернете, следует, что такая ситуация только в генту. Соответствующий баг давно висит в багзилле гентушной, но там справедливо отправляют жаловаться к Trolltech

Steplton ★★★★★
() автор топика
Ответ на: комментарий от Steplton

Не. Он прав. Локаль задается переменой LC_ALL. Далее идет уточнение. Как показала практика, это уточнение он не использует (или не всегда использует)

namezys ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.