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

Ale*_*fer 7 development-environment localization

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

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

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

有没有人有这个问题的解决方案?

问候亚历山大

Jan*_*dec 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手册,它很好地描述了预期的过程及其背后的基本原理。

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

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