2013-10-25 51 views
0

我们的主要语言是英语,所以我们使用tr("Some english text")所有的源代码。 我们也计划将它翻译成几种不同的语言 - 没有问题。Qt语言学家校对字符串

我们的客户希望从源代码中获取所有短语并对其进行校对。 当然,我们应该在校对之后回复这些词组。

我们怎样才能以适当的方式来实现?也许Qt Linguist允许导出/导入嵌入的本地化文本?

我想客户可以将英文翻译成英文,然后我们可以使用该英文翻译,但它很奇怪。

回答

0

最后,它看起来像我将不得不手动更新短语(嵌入到源代码中)。事实上,它不应该花费太多时间。如果我有时间在Python上编写脚本,我会更新这篇文章。

UPDATE

所以,我做了一切 “手工” 与Sublime Text 3一点帮助。

  1. 查找使用下面的正则表达式(.*)(tr\((\"(.+?)\")\))(.*)
  2. 在库文件夹下所有的比赛复制搜索结果到新文档
  3. 使用相同的正则表达式再次进行搜索和替换每个匹配\ 4 - 此捕获组代表tr中的文本(“”)。

在校对完成后,客户接到客户的短语后,需要3-5分钟才能找到与差异工具和代码中更新短语的差异。

不是真正的程序员解决问题的方式,但为我工作,工作得非常快!

0

我会用Qt的lupdate实用工具(可以在Qt的bin目录中找到)将您的源文件中的所有字符串文字提取到xml(ts)文件中。该文件可以用Linguist工具打开。 请注意,该实用程序仅考虑使用宏包围的字符串。这里是luptdate描述:

lupdate是Qt的语言学工具链的一部分。它从Qt UI文件,C++,Java和JavaScript/QtScript源码 中提取可翻译的 消息。提取的消息存储在文本翻译源 文件(通常是Qt TS XML)中。新消息和修改后的消息可以合并到现有的TS文件中 。

UPDATE:

另一种方法是保持所有字符串字面定义在一个单独的源文件和更新一次客户已经纠正了所有字符串。我相信这种情况发生的并不是这么频繁,甚至只发生一次,所以在翻译等方面不值得花费很多精力。

+0

谢谢,我知道它是如何工作的。这就是我们如何从英语翻译成例如西班牙文,然后使用Spanish.qm翻译包。但我需要一种方便的方式来修改原始的英文短语。所以,我可以将它们导出到.ts文件,客户将在xml中更正它们。如何将这些短语导回到源代码? – Dalamber

+0

@Dalamber,如您所说,您可以将英语应用到英文翻译中,从而替换现有字符串与来自客户的新字符串。 – vahancho

+0

我认为你必须亲手更新源代码,或者可以通过一些脚本搜索和替换来半自动地完成源代码更新。我不知道有任何现成的工具。 –