我的.ts文件的一部分,使用pylupdate4创建,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="2.0">
<context>
<name>Main</name>
<message>
<location filename="Main.py" line="2369"/>
<source>Translate me to Ukululu</source>
<translation type="unfinished"></translation>
</message>
两个问题:
1:翻译在<translation>
- 标签之间,对吗?
2:翻译似乎需要主文件中要插入翻译的行(“line = 2369”)。但每次我修改代码时,行都会改变。因此,我是否必须创建一个新的翻译文件,我必须再次手动插入标签之间的所有(未更改的)翻译?这似乎是一项疯狂的工作量。如果我错了,请纠正我,或者请解释,它是如何工作的(更好)!
答案 0 :(得分:1)
你是对的。原始文本位于代码<source>
中,而翻译位于代码<translation>
中。翻译完成后,属性type="unfinished"
也将被删除。
通常,您不会手动编辑ts文件,而是使用QtLinguist工具。我从不编辑它们,因为QtLinguist非常容易使用......
在任何情况下,当您更改源代码时,只需运行
即可pylupdate4 your_project.pro
这将更新ts文件中所有行的引用,并且它将保持翻译已完成。即使将它们移动到不同的源文件,它也足够智能地更新翻译。
您可以在此处获取更多信息
http://pyqt.sourceforge.net/Docs/PyQt4/i18n.html
http://qt-project.org/doc/qt-4.8/linguist-manager.html
希望这有帮助