Qt在QApplication中继续翻译

时间:2014-11-01 23:49:44

标签: qt

我正在尝试将加载的翻译存储在QApplication中 我正在用这种方式加载语言

QTranslator translator;
QString dir = QApplication::applicationDirPath();
dir.append("/languages");
if(translator.load("main_pl.qm", dir))
    QApplication::installTranslator(&translator);

然后我试图以这种方式进行翻译:

QApplication::translate("accountTab", "Login completed!", 0)

没有成功。 所以我试图在函数中加载翻译(与上面相同),后来我正在翻译 - 这很有效。 翻译正在加载翻译的功能。 有什么建议,如何让它在所有类别和功能中运作?

1 个答案:

答案 0 :(得分:2)

我认为问题在于你创建了一个临时翻译器,一旦你离开你的功能范围就会被删除。为了使您的翻译器对象“活着”,您需要从堆中分配它。例如:

QTranslator *translator = new QTranslator;
QString dir = QApplication::applicationDirPath();
dir.append("/languages");
if(translator->load("main_pl.qm", dir)) {
    QApplication::installTranslator(translator);
}