Javascript 流星定位/i18n-libs比较

Javascript 流星定位/i18n-libs比较,javascript,meteor,internationalization,i18next,messageformat,Javascript,Meteor,Internationalization,I18next,Messageformat,我正在尝试评估使用哪一个,因此希望其他做出此决定的人提供任何反馈。似乎有两个大的翻译项目: 消息格式 专业人士 基于MessageFormat.js实体库 包括提取工具 处理模糊字符串和版本(如果应用程序中更新了字符串) javascript和handlebar方法 用于字符串翻译的预构建翻译工具/webUI 由Gadi撰写,流星大师活跃社区的家伙 抽头i18n 注: 基于i18next引擎 使用AJAX加载语言 专业人士 引导/语言选择器的帮助程序 对软件包的支持 支持数据库集

我正在尝试评估使用哪一个,因此希望其他做出此决定的人提供任何反馈。似乎有两个大的翻译项目:

消息格式

专业人士

  • 基于MessageFormat.js实体库
  • 包括提取工具
  • 处理模糊字符串和版本(如果应用程序中更新了字符串)
  • javascript和handlebar方法
  • 用于字符串翻译的预构建翻译工具/webUI
  • 由Gadi撰写,流星大师活跃社区的家伙
抽头i18n

注:

  • 基于i18next引擎
  • 使用AJAX加载语言
专业人士

  • 引导/语言选择器的帮助程序
  • 对软件包的支持
  • 支持数据库集合转换 )
犯人? -只有JSON格式,没有yaml,编辑起来很繁琐 -没有用于管理字符串的webUI

还有其他一些项目,如 但以上两个似乎是最彻底的。我还错过了其他的吗

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

问题: 1) 页面中的多种语言

我正在尝试使用双语应用程序,但:

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

这是否意味着语言只能是A或B,而不能是基于会话自动切换的混合语言

ie如何在一个页面中提供有多个翻译的助手

  EN: {{tr "string", 'en'}}
  FR: {{tr "string", 'fr'}}
2) 提取动态数据

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


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

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

如何在一个页面中提供有多个翻译的助手

  EN: {{tr "string", 'en'}}
  FR: {{tr "string", 'fr'}}
在MessageFormat中,每种语言都不需要特殊的助手。您只需在模板中为“基本”语言(比如英语)定义一次键和值。然后,您可以使用MessageFormat基于web的翻译工具为法语、西班牙语等添加其他字符串

要选择语言,只需设置语言环境,这样就可以在客户端中添加下拉列表,以便用户可以完成此操作

请参阅SetLocale:

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

我真的需要知道更多关于您的应用程序的细节,以回答您可能如何做到这一点。MessageFormat只是创建了一个函数的MessageFormat.js文件,因此您可以直接修改该文件,但它们会在下次运行mf_extract时被覆盖。因此,我认为您实际上只需要获取应用程序中定义的名称-值对,即{{mf'admin.dashboard.title''dashboard'}}。但是,如果您有办法将当前的“内容”映射到这些my Key,您可以将这些内容加载到mfstrings集合中,或者编写代码将它们拉到mfAll.js中

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


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

您也可以使用它来翻译您的应用程序。如果您有任何问题,我将尝试回答!