Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Awejk от Февраль 07, 2010, 21:15



Название: Перевод сообщений
Отправлено: Awejk от Февраль 07, 2010, 21:15
Код:
void LoadConfig()
{
try
{
gCfg.readFile("config.cfg");
}
catch(const libconfig::ParseException &pex)
{
QMessageBox::warning(0, QObject::tr("Warning"),  ...);
return;
}
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    LoadConfig();
    std::string lang = std::string(gCfg.lookup("gui.settings.language"));
    QTranslator translator;
    translator.load(("languages/" + lang).c_str());
    a.installTranslator(&translator);
    MainWindow w(&gCfg);
    w.show();
    return a.exec();
}

как перевести "Warning" средствами QT?
Пробывал и через QApplication::translate("", "Warning", "", QApplication::UnicodeUTF8) - всё равно не работает. Как был warning так warning и остался.


Название: Re: Перевод сообщений
Отправлено: crossly от Февраль 07, 2010, 21:45
очевидно что файл перевода надо грузить до показа сообщения.... так что надо как то разрулить ситуацию... :)


Название: Re: Перевод сообщений
Отправлено: Awejk от Февраль 07, 2010, 21:54
т.е. сообщить ошибку при чтении файла всё равно придётся на каком-то нейтральном языке? Если только не прикручивать какой-нибудь свой самокат.

Интересно, а как это сделано в других программах.. может кто обращал внимание.


Название: Re: Перевод сообщений
Отправлено: BRE от Февраль 07, 2010, 21:55
Интересно, а как это сделано в других программах.. может кто обращал внимание.
На английском. :)


Название: Re: Перевод сообщений
Отправлено: SASA от Февраль 08, 2010, 10:15
Можно сначала загрузить файл перевода в соостветствии с локалью.