这是一个黑暗中的镜头,但有没有办法在xml文件中以某种方式使用qt(“”)?要像这样生成.ts文件?:
lupdate myXML.xml -ts myML.ts
我试过这个命令,但它不起作用。它没有给我一个错误,它只是说找到0(零)文字。 我的意思是文档说的是这样的:
lupdate - 一种扫描源文件tr()并将字符串放在.ts xml文件中的工具。此时.ts文件仅包含要翻译的字符串。
它说的是一个源文件,并没有规定支持哪种文件,所以我认为它应该支持各种类型的文件;但怎么办呢?
答案 0 :(得分:1)
好的,所以我找到了使用 QT_TRANSLATE_NOOP 的解决方案:
在下面的xml文本中,我做了类似这样的事情:
<root>
<tag>QT_TRANSLATE_NOOP("context","value")</tag>
</root>
当我想获取值时,我在cpp中执行类似的操作:
Q_INVOKABLE QString getTranslation(QString value){
return QApplication::translate("context", value);
}
所以总结一下。我把宏QT_TRANSLATE_NOOP放在我的xml文件中,该文件包含一个上下文字符串(你可以选择你想要的任何内容)和我希望它被翻译的值。因此,当我执行lupdate myxml.xml -ts myTs.ts时,它会生成一个ts文件,其值为宏中指定的上下文中的源文本。之后在cpp中我必须创建一个动态从上下文中转换的函数。