0

我们的主要语言是英语,所以我们使用tr("Some english text")所有源代码。我们还计划将其翻译成几种不同的语言——这没问题。

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

我们怎样才能以适当的方式做到这一点?也许 Qt Linguist 允许导出/导入嵌入的可本地化文本?

我猜客户可以把英文翻译成英文,然后我们可以使用那个英文翻译,但这很奇怪。

4

2 回答 2

0

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

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

更新:

另一种选择是将所有字符串文字定义保存在单独的源文件中,并在客户更正所有字符串后对其进行更新。我相信这种情况不会经常发生,甚至只发生一次,所以翻译等不值得付出太多努力。

于 2013-10-25T06:25:43.977 回答
0

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

更新

因此,我在Sublime Text 3的帮助下“手工”制作了所有内容。

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

校对后收到客户的短语后,用差异工具查找差异并更新代码中的短语需要 3-5 分钟。

不是真正的程序员解决问题的方法,但对我有用,而且工作得很快!

于 2013-10-28T01:26:45.940 回答