修改源后翻译文件仍然有效吗?

时间:2013-09-20 16:08:21

标签: qt pyqt translation

我的.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”)。但每次我修改代码时,行都会改变。因此,我是否必须创建一个新的翻译文件,我必须再次手动插入标签之间的所有(未更改的)翻译?这似乎是一项疯狂的工作量。如果我错了,请纠正我,或者请解释,它是如何工作的(更好)!

1 个答案:

答案 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

希望这有帮助