C ++本地化最佳实践?

时间:2009-03-06 22:06:53

标签: c++ localization

我们正在本地化一个基于C ++的跨平台客户端应用程序。第一次本地化通过是在一个短期限内为一个大伙伴大肆进行的,现在是重构它的时候了。

我们目前每个语言环境都有一个XML字符串文件,每个资源都有一个公共密钥和一个本地化值。然而,发送我们不一定技术的本地化器xml文件并不理想 - 他们不知道编码特殊字符等等。我想使用一个简单,众所周知的格式,如Excel / csv与本地化程序(也很好,因为我们也有服务器端本地化,可能在同一文件的不同选项卡中),然后从那里代码生成字符串文件。似乎Excel不喜欢输出UTF-8 CSV文件,这很烦人,并且阻止我将一些快速脚本放在一起以自动化Excel - >字符串文件转换。

这个问题已经解决了数百次。人们发现哪些工作流程最佳,特别是对于本地化人员在公司外部的情况?我正在为非技术用户寻找一些简单易用的东西,开发团队也很容易用它来生成一些简单格式的字符串文件,如XML。

4 个答案:

答案 0 :(得分:3)

  1. 使用OpenOffice而不是exel,它可以转储为UTF-8编码的CSV。

  2. 我们有.xls文件,包含常见ID,我们将其发送给翻译公司。然后使用OpenOffice将.xls转储为CSV。我们有一个工具可以生成基于CSV文件的包含本地化文件。

答案 1 :(得分:1)

Qt为localization提供了很好的设施。第一步是使用它们的字符串类QString。

接下来,您只需在tr()宏中包装任何字符串文字。这种方法的好处是你不必浪费时间来维护常量或定义。只需键入所需的字符串即可。

稍后,您使用Qt实用程序搜索所有代码单元中的可翻译字符串并创建.ts文件。这个文件是xml,所以你不必担心你的数据被困在某种专有格式中。

现在你有一个.ts文件,Qt提供了一个名为linguist的翻译编辑器。这是一个非常好的程序,它将字符串呈现给翻译者(人),并提供一些简单的工具来管理整个过程。该程序查找常见错误(不同的标点符号),跟踪每个字符串的状态,例如是否已转换,以及源字符串是否已更改或已被删除。该程序还将显示开发人员可以在tr()宏中包含的每个字符串的上下文信息。

转换完成后,.ts文件将编译为较小的二进制文件,随应用程序一起分发并在运行时加载。翻译可以即时切换。

还有更多内容,我在这里可以完全解释。这是一个值得研究的伟大系统。

答案 2 :(得分:0)

这是一个有趣的话题。在过去,我已经以各种方式处理外包

有一次我们只使用prorietary格式的简单文本文件。我们为每种语言都有不同的文件。格式如下:

 #LOCALIZATION_ID
 English String

本地人没有问题。我使用的另一件事是自定义xls电子表格应用程序。基本上,应用程序通过Web服务将其数据发布到服务器。无需具有中间文件格式,例如csv。这很好,因为所有字符串都是版本化的,允许多个外包在同一个字符串文件上工作。

您应该可以编写一些vba来获取excel电子表格并输出外包商可以通过电子邮件发送给您的UTF-8 xml文件。表单顶部的一个大按钮,显示“发送XML文件”。它会将其发送到预定义的电子邮件地址,或将其发布到您的服务器。最糟糕的情况是,他们可以通过电子邮件向您发送文件。

答案 3 :(得分:0)

我会对任何带有模糊字符编码的格式保持警惕。考虑使用XLIFF(但请与您的翻译供应商联系,了解他们熟悉的工具/流程)。