【问题标题】:No way to handle internationalization (i18n)?没有办法处理国际化(i18n)?
【发布时间】:2012-11-08 15:41:34
【问题描述】:

我想知道在使用 trigger.io (forge) 构建 HTML/Js 应用程序时是否有任何方法可以处理 i18n。

顺便说一句,也没有办法在设备上检测用户的区域设置,通过检查用户代理(或者在我的情况下 - FB 连接应用程序 - 要求 FB 获取用户的区域设置)来解决问题

国际化对于任何严肃的应用程序来说都是必须的.​​..... 我目前正在通过创建多个 JSON 文件(每个语言环境一个)来“破解”它,并以适当的语言保存相同的密钥。

1: 有没有使用 forge Js API 检测/获取用户语言环境的计划? 2:有没有计划在构建应用程序时处理自动化 i18n?

Tks.

【问题讨论】:

  • Quientin 您在 trigger.io 中使用您的应用程序的 i18n 有什么进一步的了解吗?我即将开始自己解决同样的问题,并寻找选择。
  • @Meirion,我确实使用了基于JsGettext 的完整客户端(javascript)实现。通过这种方式,我能够使用 gettext CLI 工具提取字符串、生成 .po 文件并将它们直接用于我的应用程序。 (支持.mo - 编译的.po - 是实验性的)对于本地检测,有几种方法,因为我的应用程序需要FB登录,我确实选择了用户在facebook中设置的语言环境

标签: internationalization trigger.io


【解决方案1】:

您可以轻松编写Trigger.io plugin 来为您检测设备语言。以下是有关如何执行此操作的一些资源:

一旦你有了语言字符串,你就可以使用许多 js 插件中的一个来为你处理本地化,或者你自己做。拥有多个带有本地化字符串的 json 文件并按需加载其中一个对我来说听起来并不难。

PS:当然,如果您打算拥有应用的移动浏览器版本,则不能依赖原生插件。在这种情况下,您必须使用不同的解决方案。看看JavaScript for detecting browser language preference

【讨论】:

    【解决方案2】:

    有两件事需要翻译:您的 JS/HTML 应用和原生元素。

    JS/HTML

    使用window.navigator.language 获取语言环境。 使用一些库,例如https://github.com/wikimedia/jquery.i18n

    原生

    本机元素不经常显示,但确实包含一些关键内容,例如权限对话框(“应用程序想要访问您的照片”)。

    据我所知,trigger.io 目前不支持翻译此部分,即它们都是英文的。

    但据我了解,trigger.io 可以相当轻松地添加对此的支持,只需在 config.json 中“切换”更多语言成为可能,因为 iOS 中已经内置了这些对话框的翻译,只是一个将应用“标记”为支持该语言的问题。

    再说一次,我不能 100% 确定原生部分,但我认为它是这样工作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 2017-06-09
      • 2012-02-25
      • 1970-01-01
      相关资源
      最近更新 更多