我们的主要语言是英语,所以我们使用tr("Some english text")
所有源代码。我们还计划将其翻译成几种不同的语言——这没问题。
我们的客户希望从源代码中获取所有短语并进行校对。当然,我们应该在校对后把这些短语放回去。
我们怎样才能以适当的方式做到这一点?也许 Qt Linguist 允许导出/导入嵌入的可本地化文本?
我猜客户可以把英文翻译成英文,然后我们可以使用那个英文翻译,但这很奇怪。
我们的主要语言是英语,所以我们使用tr("Some english text")
所有源代码。我们还计划将其翻译成几种不同的语言——这没问题。
我们的客户希望从源代码中获取所有短语并进行校对。当然,我们应该在校对后把这些短语放回去。
我们怎样才能以适当的方式做到这一点?也许 Qt Linguist 允许导出/导入嵌入的可本地化文本?
我猜客户可以把英文翻译成英文,然后我们可以使用那个英文翻译,但这很奇怪。
我会使用 Qt 的lupdate
实用程序(可以在 Qt 的 bin 目录中找到),它将从您的源代码中提取所有字符串文字到一个 xml (ts) 文件中。该文件可以用语言学家工具打开。请注意,该实用程序仅考虑用tr()
宏包围的字符串。这里是luptdate
描述:
lupdate 是 Qt 语言学家工具链的一部分。它从 Qt UI 文件、C++、Java 和 JavaScript/QtScript 源代码中提取可翻译的消息。提取的消息存储在文本翻译源文件(通常是 Qt TS XML)中。新的和修改的消息可以合并到现有的 TS 文件中。
更新:
另一种选择是将所有字符串文字定义保存在单独的源文件中,并在客户更正所有字符串后对其进行更新。我相信这种情况不会经常发生,甚至只发生一次,所以翻译等不值得付出太多努力。
最后,看起来我必须手动更新短语(嵌入到源代码中)。实际上,它不应该花费太多时间。如果我有时间在 Python 上编写脚本,我会更新这篇文章。
更新
因此,我在Sublime Text 3的帮助下“手工”制作了所有内容。
(.*)(tr\((\"(.+?)\")\))(.*)
校对后收到客户的短语后,用差异工具查找差异并更新代码中的短语需要 3-5 分钟。
不是真正的程序员解决问题的方法,但对我有用,而且工作得很快!