有没有办法在各种平台上本地化应用程序

时间:2013-01-24 13:52:20

标签: localization development-environment

我们正在开发一个可在各种平台上运行的应用程序(Windows,Windows RT,MacOSX,iOS,Android)。

问题是如何以简单的方式管理不同平台上的不同本地化。不同平台上的语言文件有各种格式(有些是基于xml的,有些是简单的键值对,有些则是完全疯狂的格式,如MacOS)

我敢肯定,我们不是第一家遇到这个问题的公司,但我找不到一个易于使用的解决方案,但却有可能拥有一个“数据源”,其中字符串以不同的语言收集(最好的是翻译器的用户界面),然后可以将其导出为不同平台的不同格式。

有没有人能解决这个问题?

问候 亚历山大

4 个答案:

答案 0 :(得分:2)

我建议使用GNU Gettext工具链进行管理,并在运行时使用

  • 运行时阅读的一些替代实现,如Boost.Locale
  • 自己的实现(.mo格式非常简单)或
  • 使用Translate Toolkit将消息目录转换为您喜欢的其他格式。

您无法使用GNU Gettextlibintl组件,因为它是根据LGPL许可的,Apple AppStore和Windows Live Store的条款与该许可证不兼容。但是在运行时重新实现所需的位是非常简单的。

Translate Toolkit实际上重新实现了GNU Gettext的全部或大部分内容,并支持许多其他本地化格式,但Gettext .po格式提供了大多数免费工具(例如poedit本地编辑和Weblate用于在线编辑)所以我建议坚持使用它。并阅读GNU Gettext手册,它描述了其背后的预期过程和基本原理。

我对工具链有很好的经验。当您需要一些特殊处理(如从自定义资源文件中提取可翻译字符串)时,Translate Toolkit很容易编写脚本,Weblate很容易为您的翻译人员使用,特别是当您依赖各种业务合作伙伴和测试人员时像我们这样的大多数翻译的国家。

Translate Toolkit还支持从HTML中提取可翻译字符串,因此可以使用相同的流程翻译您的网站。

答案 1 :(得分:1)

我为iPhone和Android做了一个有很多翻译的项目,我想我确实有你正在寻找的解决方案。

我解决它的方法是将所有翻译文本放在Excel电子表格中,并使用VBA宏从那里生成.string和.xml翻译文件。您可以在此处下载我的示例Excel工作表和VBA宏:

http://members.home.nl/bas.de.reuver/files/multilanguage.zip

就在最近,我还添加了初步的Visual Studio .resx输出,虽然这是未经测试的。

编辑: 顺便说一句,我的javascript xcode/eclipse converter也许有用..

答案 2 :(得分:1)

您可以将翻译存储在https://l10n.ws上并通过API

获取

答案 3 :(得分:0)

免责声明:我是Tethras的首席技术官兼联合创始人,但他会尝试以不仅仅是“使用我们的服务”的方式回答这个问题。

正如loldop指出的那样,如果您想拥有一站式管理本地化内容的解决方案,您确实需要在所有平台上规范化您的内容。这可能需要大量工作,并且需要大量编码和脚本以及调用来自不同SDK的各种工具,以达到一种通用格式,以满足您需要支持的所有各种文件格式的本地化需求。我之前句子的长度和复杂程度与为达到所有这些目标的有利解决方案所需的工作量成反比。

Tethras,我们构建了一个平台,可以减轻多平台软件发布商必须执行此操作的需求。我们支持您在上面列出的平台上的所有本机格式,并且可以利用从一种文件格式到另一种文件格式的翻译。例如,将iOS应用程序中Localizable.strings中的内容翻译成多种语言,然后将等效的strings.xml文件从Android或foo.resx从Windows RT上传到系统,它将自动利用翻译。任何未翻译的字符串都将被标记,您可以为这些字符串订购更新。

实际上,Tethras是一个CMS,用于跨多种不同本机文件格式的本地化内容。