QLocale locale;
QTranslator translator;
if (translator.load(":/translations/translation_en_US.qm")) {
app.installTranslator(&translator);
qDebug() << "Can load translation file:"<< QLocale().name();
}else{
qDebug() << "Can't load translation file:"<< QLocale().name();
}
遇到问题:使用相对路径调用失败,但使用绝对路径可以调用成功。放在exe文件同目录仍无效。
解决方法:1.使用QDir类获取当前工作目录的绝对路径,然后将相对地址与当前工作目录的绝对路径拼接起来,作为参数传递给translator.load。
QDir dir = QDir::current();
QString relativePath = "translations/translation_en_US.qm";
QString absolutePath = dir.absoluteFilePath(relativePath);
translator.load(absolutePath);
2.在应用程序启动时设置当前工作目录为应用程序所在目录,这样相对地址加载时就会相对于应用程序所在目录。
QDir::setCurrent(QCoreApplication::applicationDirPath());
translator.load("translations/translation_en_US.qm");