[SOLVED] Qt и локализация стандартных диалогов

Доброго времени суток. Баловался тут qtcreator'ом и обнаружил грустное: стандартные диалоги работы с файлами/печатью/шрифтами выдаются нелокализованными. Запускается все в kde с нормальной локализацией. В этой связи вопрос: это баг тулкита (ведь по идее, он должен выдавать нативные диалоги среды, в корой работает приложение) или в код нужно добавить еще что-то кроме

QTranslator qt(0);
qt.load(QString("qt_ru"), QString("/usr/share/qt4/translations"));
a.installTranslator(&qt);

.

Эта бага уже давно стала почти что фичей.

Раскапывать тему на форуме мне сейчас просто лень.
Ссылка бегала где-то в недрах sql-дампа нашей неофф. Вики.

Кратко:
В силу альтернативности апстрима троллей нормальный режим работы у них да-а-авно сломан (есть подозрение, что повторяется ситуация с X11).
Но если задать LC_ALL, то всё работает.

С учётом фичи user_patch наверное стоит упереться в проработать нюанс.

ЗЫ: Обрати внимание на то, как сделан выбор языка интерфейса в [например] psi или той же не к ночи будь помянута Опере…

:wq
--
Live free or die

Задать LC_ALL где? в

Задать LC_ALL где? в переменных среды? Дык и так:

~ $ 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="ru_RU.UTF-8"

А как сделан выбор языка в Опере? И где б еще на ее сырцы посмотреть...)
К слову в smplayer'е та же беда.

.

FuckToReal написал(а):
Задать LC_ALL где? в переменных среды?

Да, в переменных окружения.
В наличии.

FuckToReal написал(а):
А как сделан выбор языка в Опере? И где б еще на ее сырцы посмотреть...)
К слову в smplayer'е та же беда.

Гуй smplayer'а не помню.
А в psi и Опере когда смотрел язык интерфейса выставлялся где-то в настройках явно ручками из списка.

Ещё можно предположить что-то по мотивам gcc-upgrading (где пишут, что после обновления компиллятора неплохо пересобрать некоторые пакеты, в том числе библиотеки qt), но с проблемами в частии локализации здесь я не сталкивался.

:wq
--
Live free or die

Anarchist написал(а): А в

Anarchist написал(а):
А в psi и Опере когда смотрел язык интерфейса выставлялся где-то в настройках явно ручками из списка.

А, так ты про гуй. Ну в том же smplayer'е так же. Просто подсовывается нужный файлик перевода. Но я так думаю, стандартные диалоги на то и стандартные, чтоб не заморачиваться с ними вообще.

Cудя по всему это косяк

Cудя по всему это косяк локализации самого qt. Надо будет проверить. Если до понедельника не отпишусь, подними тему, пожалуйста.

бамп

бамп

судя по всему, у тебя

судя по всему, у тебя используется кде-шный диалог. Попробуй вызвать диалог с QFileDialog::DontUseNativeDialog
Например так:

QFileDialog::getOpenFileName(this, tr("Open file"),QString(),QString(), 0, QFileDialog::DontUseNativeDialog);
Цитата:
I examined the code of some other qt application from my distribution repository and figured out that the problem cannot be solved. There is an alternative: 1) Use Qt dialog and get full translation 2) Or use KDE native dialog and get patial translation. There is no way to use translated KDE dialog on all machines. The only solution is to make a translation and send it to KDE team.

© http://stackoverflow.com/questions/12571895/save-open-dialog-localization-in-qt

Да, если не использовать

Да, если не использовать нативный диалог - получаем локализацию. Но меня все-таки смущает вот это:

eegorov написал(а):
There is no way to use translated KDE dialog on all machines. The only solution is to make a translation and send it to KDE team.

Почему, собсно, no way? И что именно перевести? Диалоги нативных kde приложений и так локализованы.

попробуй сделать такmkdir

попробуй сделать так

mkdir -p ~/.kde4/share/locale/ru/LC_MESSAGES/
cd ~/.kde4/share/locale/ru/LC_MESSAGES/
ln -s /usr/share/locale/ru/LC_MESSAGES/kdialog.mo kfilemodule.mo

и запусти приложение

PS: такое поведение наблюдается у

QFileDialog::getOpenFileName();
QColorDialog::getColor ();
QFontDialog::getFont();

никто не сможет проверить на других дистрибутивах Linux?

У меня проблема только с

У меня проблема только с QFileDialog, остальные диалоги нормально.
Решение помогло, спасибо.

FuckToReal

FuckToReal написал(а):
стандартные диалоги работы с файлами/печатью/шрифтами выдаются нелокализованными

Хм, прошу прощенья за дезинформацию, проблема только с QFileDialog.

https://bugs.gentoo.org/show_

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

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