2009-03-06 76 views
3

我们正在本地化一个跨平台的基于C++的客户端应用程序。第一次本地化通行证在短期内完成了一个大合作伙伴的急件,现在是重构它的时候了。C++本地化最佳实践?

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

此问题已解决数百次。什么样的工作流程让人们找到最好的工作,特别是对于本地化人员在公司外部的情况?我正在为非技术用户寻找一些容易的事情,并且也容易让开发团队用一些简单的XML格式生成字符串文件。

+0

我正在考虑编写我自己的本地化工具。我会称它为LOCutus。 – 2009-09-02 21:05:10

回答

3
  1. 使用OpenOffice代替exel,它可以转储为UTF-8编码的CSV。

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

0

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

有一次,我们只是使用普通格式的简单文本文件。我们对每种语言都有不同的文件。格式是这样的:

#LOCALIZATION_ID 
English String 

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

你或许应该能够写一些VBA,将您的Excel电子表格和输出的外包商可能会通过电子邮件发送给您一个UTF-8的XML文件。在工作表顶部的一个大按钮,上面写着“发送XML文件”。它会将它发送到预定义的电子邮件地址,或将其发送到您的服务器。最坏的情况下,他们可以通过电子邮件发送文件本身。

1

的Qt有localization很大的便利。第一步是使用它们的字符串类QString。

接下来,您只需在tr()宏中包装任何字符串文字。这种方法的好处是你不必浪费时间来保持常量或定义。只要输入你想要的字符串,在你想要的地方。

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

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

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

还有更多的东西比我能在这里完整解释。这真的是一个值得研究的伟大系统。