我需要经常测试我的应用程序翻译为非英语语言,而仅仅为了进行这个简单的检查而更改整个操作系统语言是非常不舒服的。
例如,如何使用环境变量更改 Qt 检测到的系统语言?
或使用命令行参数。
我尝试改变LANG
, LANGUAGE
环境变量,但是没有任何作用。
然而,在 GNOME 下却有!
UPD:代码我正在使用这样的代码来确定系统区域设置并加载适当的翻译:
QTranslator app_translator;
if (!app_translator.load ("app_" + QLocale::system ().name (), app_tr_dir))
qWarning ("Can't load app translator file for locale %s from %s", qPrintable (QLocale::system ().name ()), app_tr_dir.toLocal8Bit().data());
else
app.installTranslator (&app_translator);
附:我的操作系统是Kubuntu 13.10,Qt版本是4.8。
您始终可以通过 QLocale::setDefault() 方法更改区域设置。这是一个项目的示例:
void Language::setCurrentLanguage(Language::Languages language)
{
if (language == Language::Arabic) {
QLocale l(QLocale::Arabic, QLocale::SaudiArabia);
QLocale::setDefault(l);
dynamic_cast<MangoApp*>(qApp)->setLayoutDirection(Qt::RightToLeft);
dynamic_cast<MangoApp*>(qApp)->removeAllTranslator();
dynamic_cast<MangoApp*>(qApp)->loadQtTranslator();
dynamic_cast<MangoApp*>(qApp)->loadMangoTranslator();
} else {
QLocale l(QLocale::English, QLocale::UnitedStates);
QLocale::setDefault(l);
dynamic_cast<MangoApp*>(qApp)->setLayoutDirection(Qt::LeftToRight);
dynamic_cast<MangoApp*>(qApp)->removeAllTranslator();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)