我想用英语或法语翻译我的安装程序向导(基于Qt安装程序框架)(取决于操作系统语言)。
我在" installscript.qs"中添加了这些行。档案:
Component.prototype.retranslateUi = function()
{
component.languageChanged();
}
我在" config.xml"中添加了这些内容。档案:
<Installer>
...
<Translations>
<Translation>fr.qm</Translation>
</Translations>
</Installer>
但一切都很好(所有长篇文章都已翻译)(法文版)但按钮如&#34; Next&#34;,&#34;取消&#34;,&#34;退出&#34;没有翻译(见截图):
ps:我不想使用C ++代码。 (仅限脚本或Xml)
答案 0 :(得分:3)
除了您自己的.qm文件外,您还需要加载Qt翻译文件。该文件位于Qt安装文件夹的翻译子文件夹中(例如./usr/share/qt5/translations/
)。对于某些语言,加载qt_xx(其中XX应该替换为您的语言环境)似乎已足够,但对于德语,我必须加载&#34; qtbase_XX&#34;翻译“下一步”和“取消”按钮。在fr
语言环境的示例中,它们被命名为qt_fr.qm
和qtbase_fr.qm
。
修改强>
由于John Smith的评论,我检查了安装程序框架源代码,并且框架无法加载多个翻译文件:
请参阅installer-framework/src/libs/installer/component.cpp
/*!
Loads the translations matching the name filters \a qms inside \a directory. Only translations
with a base name matching the current locale's name are loaded. For more information, see
\l{Translating Pages}.
*/
void Component::loadTranslations(const QDir &directory, const QStringList &qms)
所以我上面的原始答案(会导致翻译的QWizard::CancelButton
)无效。
我通过更正Quit
installer-framework/src/sdk/translations
按钮翻译为德语
与feramework一起出现的原始翻译缺少&
:
所以,改变:
<context>
<name>QInstaller::IntroductionPage</name>
...
<message>
<source>Quit</source>
<translation>Beenden</translation>
</message>
到
<context>
<name>QInstaller::IntroductionPage</name>
...
<message>
<source>&Quit</source>
<translation>Beenden</translation>
</message>
并重新编译框架导致框架内的翻译退出按钮(Beenden)。
我没试过,但是学习/installer-framework/src/libs/installer/packagemanagergui.cpp
也可以让你翻译下一个按钮。
答案 1 :(得分:1)
添加上下文可能会有所帮助:
db.close();
在“下一步”和“返回”之后它醒了,但是找不到在何处写入function Component()
{
qsTranslate("QInstaller::IntroductionPage", "&Quit");
}
。