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

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

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

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

有没有人有解决这个问题的办法?

问候亚历山大


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

  • 一些用于运行时读取的替代实现,如Boost.Locale,
  • 自己的实现(.mo格式非常简单)或者
  • 使用翻译工具包将消息目录转换为您喜欢的其他格式。
  • 您不能使用GNU Gettext的libintl组件,因为它在LGPL下获得许可,并且Apple AppStore和Windows Live Store的条款与该许可证不兼容。 但是在运行时重新实现你所需要的位是非常微不足道的。

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

    我有相当不错的工具链经验。 当您需要一些特殊处理,如从您的自定义资源文件中提取可翻译的字符串时,翻译工具包很容易编写,并且Weblate很容易用于您的翻译人员,尤其是当您依赖各个国家的业务合作伙伴和测试人员来处理大多数翻译时,例如我们。

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


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

    我解决这个问题的方法是将所有翻译文本放入Excel电子表格中,并使用VBA宏从那里生成.string和.xml翻译文件。 你可以在这里下载我的示例Excel表格和VBA宏:

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

    就在最近,我还添加了初步的Visual Studio .resx输出,尽管这没有经过测试。

    编辑:顺便说一句,也是我的JavaScript的Xcode / Eclipse转换器可能会使用..


    你可以在https://l10n.ws上存储你的翻译,并通过他们的API获取它

    链接地址: http://www.djcxy.com/p/68909.html

    上一篇: Is there a Way to localize an Application on Various Platforms

    下一篇: Java Higher Order Polymorphic Function