我没有办法做到这一点 - 只是编辑现有字段的翻译。
如果没有办法实现这一点 - 应该如何做到(不知何故自动,因为现在我正在手动添加
<message>
<source>x</source>
<translation>xx</translation>
</message>
阻止我的.ts
文件,我认为这不是正确的方法。
答案 0 :(得分:7)
不,这不是正确的方法:)在代码中使用tr()来标记字符串以进行翻译。 例如
label->setText( tr("Error") );
你为你的项目运行lupdate将它们提取到.ts。有关详细信息,请参阅here。 或者您是否需要翻译源代码中没有的字符串?
答案 1 :(得分:1)
我刚写了一个python脚本来插入新条目 使用ElementTree进入本地解析器的.ts文件。它不会使代码漂亮 当它添加它,但我相信它工作得很好(到目前为止):
from xml.etree import ElementTree as ET
tree = ET.parse(infile)
doc = tree.getroot()
for e in tree.getiterator()
if e.tag == "context":
for child in e.getchildren():
if child.tag == "name" and child.text == target:
elem = ET.SubElement(e, "message")
src = ET.SubElement(elem, "source")
src.text = newtext
trans = ET.SubElement(elem, "translation")
trans.text = "THE_TRANSLATION"
tree.write(outfile)
如果infile是.ts文件,outfile可能与infile相同或不同。 target是您要添加新消息的上下文, 而newtext当然是新的源文本。