Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Sergey B. от Август 07, 2007, 14:12



Название: Запуск локализованных приложений
Отправлено: Sergey B. от Август 07, 2007, 14:12
Привет...

Писал приложение на английском, потом подготовил файлы перевода *.qm.
При запуски через консоль (./program), всё работает корректно и красиво, локаль (ru_RU.UTF-8) распознаётся правильно и подхватывает перевод корректно.
При запуске из KDE локаль не определяется.
Файлы перевода гружу так:
Код:
    QTranslator qtTranslator;
         qtTranslator.load("qt_" + QLocale::system().name());
         app.installTranslator(&qtTranslator);

         QTranslator myappTranslator;
         myappTranslator.load("myapp_" + QLocale::system().name());
         app.installTranslator(&myappTranslator);


Система: Debian 4, KDE 3.5.6


Название: Запуск локализованных приложений
Отправлено: bigirbis от Август 07, 2007, 14:32
Поменяй working directory


Название: Запуск локализованных приложений
Отправлено: Sergey B. от Август 07, 2007, 15:16
Цитата: "bigirbis"
Поменяй working directory


?


Название: Запуск локализованных приложений
Отправлено: Emc от Август 07, 2007, 16:50
а если
Код:

 qtTranslator.load("qt_" + QLocale::system().name(), resourceDir);

а в KDE через ярлык запускаешь?


Название: Запуск локализованных приложений
Отправлено: Sergey B. от Август 07, 2007, 17:07
Цитата: "Emc"
а если
Код:

 qtTranslator.load("qt_" + QLocale::system().name(), resourceDir);

а в KDE через ярлык запускаешь?


Нет.
Запуском через Konqueror прям из директории...
Окей попробую ресурс дир дёрнуть...


Название: Запуск локализованных приложений
Отправлено: Emc от Август 07, 2007, 17:19
о кстати только что дошло - можно засунуть переводы в ресурсник (file.qrc) и тогда они вкомпилятся в экзешку... надо попробывать


Название: Запуск локализованных приложений
Отправлено: Пантер от Август 07, 2007, 17:23
Цитата: "Emc"
о кстати только что дошло - можно засунуть переводы в ресурсник (file.qrc) и тогда они вкомпилятся в экзешку... надо попробывать

Тогда екзешка будет больше весить. :) Палка о двух концах. У меня сейчас с этим проблема: включать рисунки в екзех или нет. Что лучше...?


Название: Запуск локализованных приложений
Отправлено: Sergey B. от Август 07, 2007, 18:10
Цитата: "panter_dsd"
Цитата: "Emc"
о кстати только что дошло - можно засунуть переводы в ресурсник (file.qrc) и тогда они вкомпилятся в экзешку... надо попробывать

Тогда екзешка будет больше весить. :) Палка о двух концах. У меня сейчас с этим проблема: включать рисунки в екзех или нет. Что лучше...?


Я всегда включаю...
а файлы перевода, весят порядка 35 кб...

добавлено спустя 6 минут:

 
Код:

 qtTranslator.load("qt_" + QLocale::system().name(), app.applicationDirPath());


решение проблемы.


Название: Re: Запуск локализованных приложений
Отправлено: shiriy от Ноябрь 18, 2009, 19:31
А никто не знает, почему этот QLocale::system().name() возвращает LC_ALL? а хотелось бы LANG.
А то у меня программа по умолчанию запускется с английским фейсом, вместо русского.
Код:
$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC=C
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=


Название: Re: Запуск локализованных приложений
Отправлено: b-s-a от Январь 29, 2010, 14:13
Что-то делаешь не так. У меня тоже LC_ALL пустой, но все программы проблем с локализацией не имеют.


Название: Re: Запуск локализованных приложений
Отправлено: NicK от Январь 29, 2010, 15:09
Я делаю так:
Код:
void localizeUI()
{
        QString filename = QString("main_") + QLocale::system().name();
        QTranslator* translator = new QTranslator;
        if(translator->load(filename, qApp->applicationDirPath() + "/l10n/"))  qApp->installTranslator(translator);

}