【问题标题】:Meteor localization / i18n libs comparisonMeteor 本地化/i18n 库比较
【发布时间】:2014-11-16 22:51:39
【问题描述】:

我正在尝试评估使用哪一个,因此如果做出此决定的其他人提供任何反馈,我将不胜感激。好像有两个大的翻译项目:

消息格式

http://messageformat.meteor.com/

优点

  • 基于 MessageFormat.js 实体库
  • 包括提取工具
  • 如果字符串在应用程序中更新,则处理模糊字符串和版本
  • javascript 和车把方法
  • 用于字符串翻译的预建翻译工具/webUI http://messageformat.meteor.com/translate/af
  • 作者:Gadi,流星大师,活跃的社区成员

TAP i18n

https://github.com/TAPevents/

注释:

  • 基于 i18next 引擎
  • 使用 AJAX 加载语言

优点

缺点? - 只有 JSON 格式,没有 yaml,编辑起来很繁琐 - 没有用于管理字符串的 webUI

还有一些其他项目如https://github.com/Nemo64/meteor-translator 但上面两个似乎是最彻底的。我错过了其他人吗?

人们在选择合适的工具时还使用了哪些其他标准? messageFormat 与 i18next 的底层技术似乎是一个因素。

问题:

1) 页面中的多种语言

我正在尝试做一个双语应用,但是:

点击:“仅通过网络发送当前客户语言所需的翻译”

这是否意味着语言只能是 A 或 B,但不能混合,根据会话自动切换?

即如何在一个页面中提供帮助器以进行多个翻译

  EN: {{tr "string", 'en'}}
  FR: {{tr "string", 'fr'}}

2) 提取动态数据

至少 messageFormat 项目会在静态页面中捕获/提取字符串,但是如果我在复杂的 mongo 集合中已经有很多内容,有没有办法捕获这个?

感谢软件包创建者或该领域其他人提供的任何见解。

【问题讨论】:

  • 您也可以使用l10ns.org 来翻译您的应用程序。

标签: javascript meteor internationalization i18next messageformat


【解决方案1】:

听起来你已经下定决心了。 ;)

如何在一个页面中提供帮助器以进行多个翻译

在 MessageFormat 中,您不需要为每种语言设置特殊的助手。您只需在模板中为您的“基本”语言定义一次键和值——比如说英语。稍后您可以使用基于 Web 的 MessageFormat 翻译工具添加其他字符串,例如法语、西班牙语等。

要选择语言,您只需设置区域设置,这样您就可以在客户端中添加一个下拉菜单,以便您的用户完成。

参见 SetLocale: http://messageformat.meteor.com/docs#methods

如果我在复杂的 mongo 集合中已经有很多内容,有没有办法捕获这些内容?

我真的需要了解有关您的应用程序的更多详细信息,才能回答您如何能够做到这一点。 MessageFormat 只是创建了一个 messageformat.js 函数文件,因此您可以直接修改该文件,但下次运行 mf_extract 时它们会被覆盖。所以我认为你真的只需要在你的应用程序中定义名称-值对,即 {{mf 'admin.dashboard.title' 'Dashboard'}}。但是,如果您有某种方法可以将当前的“内容”映射到这些 my 键,您也许可以将该内容加载到 mfstrings 集合中,或者编写代码将它们拉入 mfAll.js 。 . .

我们在所有 Meteor 应用程序中都使用 MessageFormat,并且非常喜欢它。我没有 TAP i18n 的经验,但 MessageFormat 似乎很好地满足了我们的需求(我们正在做日语、英语、中文)。

我建议将其添加到您的项目中,或者将其与测试项目一起使用以获得一些经验,然后您可以决定您喜欢它的方式。只需确保您阅读了有关 mf_extract 的信息,否则您会被卡住。

【讨论】:

  • 如果您有任何问题,我会尽力解答!
猜你喜欢
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多