Qt助手多语言
Qt Assistant multilingual
我们使用Qt Assistant作为新的帮助文件系统。但由于我们拥有国际客户群,我们希望以不同的语言启动Qt助手。
使用生成的 QHC 文件启动助手根本不是问题,如下面的代码片段所示。
QProcess a_process;
QStringList a_args;
a_args << "-collectionFile";
a_args << S_HELPFILE_PATH;
a_args << "-enableRemoteControl";
QFile a_assistantExe( S_ASSISTANT_PATH );
if ( a_assistantExe.exists() )
{
a_process.start( S_ASSISTANT_PATH, a_args );
if ( !a_process.waitForStarted() )
return;
}
但是我们如何才能用不同的语言启动Qt Assistant呢?即使在互联网上长时间搜索后,我也没有找到做到这一点的方法。
如果你检查Qt Assistant(main.cpp
(的源代码,你会发现它将始终使用系统语言环境:
void setupTranslations()
{
TRACE_OBJ
const QString& locale = QLocale::system().name();
const QString &resourceDir
= QLibraryInfo::location(QLibraryInfo::TranslationsPath);
setupTranslation(QLatin1String("assistant_") + locale, resourceDir);
setupTranslation(QLatin1String("qt_") + locale, resourceDir);
setupTranslation(QLatin1String("qt_help_") + locale, resourceDir);
}
要覆盖系统区域设置,只需在启动进程之前设置lang
环境变量:
if ( a_assistantExe.exists() )
{
QProcessEnvironment env;
env.insert("lang", "de"); // replace with your current locale
a_process.setProcessEnvironment(env);
a_process.start( S_ASSISTANT_PATH, a_args );
if ( !a_process.waitForStarted() )
return;
}
它不仅会改变Qt Assistant本身的语言,还会使用你的.qhc文件中相应的翻译版本(<file language="de"></file>
、<text language="de"></text>
、...(。
相关文章:
- Qt creator语言 - fno-elide-constructors 不起作用
- Qt助手多语言
- 为什么在Qt中创建主窗口之前必须加载语言包?
- Qt 与 QML 语言的相关性
- QT应用程序意外的语言事件
- 如何在 c++ 语言中使用带有 MFC 或 QT 的谷歌地图 API?
- 如何在QT多种语言支持中映射正确的语言
- 其他语言的Qt键盘输入
- 如何使用 QTableWidgetItem 文本在 QT 中翻译语言翻译
- 如何在 QT 的语言翻译中使用 & 字符串
- 如何翻译使用预构建的QT安装程序框架创建的安装程序,无论OS语言如何
- 如何制作多语言QT UI应用程序
- 使用动态语言的QT应用程序(QTranslator)不起作用
- 在QT中更改语言环境
- 在 C++ QT GUI 中更改语言时代码未更新
- 在Qt HTML5应用程序中使用替代脚本语言
- 如何用其他语言编写带有绑定的Qt插件系统
- QT QSyntaxHighlighter语言 - what's the setCurrentBlockState
- Qt/Gtk+允许同时用两种语言编程吗
- Qt 4.7.4 C++ QScrollBar语言 - - 使用 QStyle 设置滑块的大小