gpt4 book ai didi

javascript - Meteor 本地化/i18n 库比较

转载 作者:搜寻专家 更新时间:2023-11-01 04:25:02 25 4
gpt4 key购买 nike

我正在尝试评估使用哪一个,因此非常感谢做出此决定的其他人的任何反馈。翻译好像有两个大项目:

消息格式

http://messageformat.meteor.com/

优点

  • 基于MessageFormat.js的大量lib
  • 包括提取工具
  • 处理模糊字符串和版本,如果字符串在应用程序中更新
  • javascript 和 handlebars 方法
  • 用于字符串翻译的预建翻译工具/webUI http://messageformat.meteor.com/translate/af
  • 由活跃于社区的 meteor 大师 Gadi 撰写

TAP 国际化

https://github.com/TAPevents/

注意事项:

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

优点

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

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

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

问题:

1) 页面多语言

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

Tap: "Only the required translations for the current client's language are sent over the wire"

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

即如何在页面中提供助手以进行多种翻译

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

2)提取动态数据

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

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

最佳答案

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

how to provide helpers in a page to have multiple translation

在 MessageFormat 中,您不需要为每种语言提供特殊的帮助程序。您只需在您的模板中为您的“基本”语言定义您的键和值——假设是英语。稍后您可以使用基于 Web 的 MessageFormat 翻译工具为法语、西类牙语等添加其他字符串。

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

参见设置区域设置: http://messageformat.meteor.com/docs#methods

if I have a lot of content already in complex mongo collections, is there a way to capture this?

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

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

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

关于javascript - Meteor 本地化/i18n 库比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com