gpt4 book ai didi

jquery - 哪个 JavaScript 框架擅长处理国际化?

转载 作者:行者123 更新时间:2023-12-01 00:04:05 24 4
gpt4 key购买 nike

假设我正在构建一个相当大的基于浏览器的交互式媒体应用程序,并且我有以下要求:

  • 仅限 Webkit(假设桌面上使用 Chrome)
  • 平板电脑和桌面版本,用户界面可能存在细微差别
  • 完全客户端:没有任何服务器交互
  • 尽可能实现最佳性能
  • 完全国际化
  • 我将构建很多这样的应用程序
  • 长期可维护性不是优先考虑的事情(这里没有 TDD)
  • 项目间的重用和利用是重中之重
  • 设计师占据主导地位 - 大量时间将花在外观和动画上
  • 开发时间表非常短
  • 小而出色的团队

我正在向以前做过类似事情的人寻求建议,以避免预先做出一些错误的选择。

我对 JS 和 CSS3 了如指掌,但我足够聪明/有经验/足够老,知道使用别人开发的架构框架比我自己开发的架构框架有好处。然而,只有当我正在编写的应用程序符合框架开发人员的目标时,这些好处才得以实现。

我花了一天时间尝试了解 SenchaTouch,并得出结论,它非常适合构建与我正在构建的完全不同的东西。 (类比SenchaTouch/ExtJS就是Swing,而我正在寻找Flash。)另外,Sencha似乎费了很大的劲才把Javascript变成基于类的系统,而不是仅仅接受/拥抱它是一个原型(prototype)为基础的系统。这让我很烦恼。

我花了一天时间学习backbone.js,我真的很喜欢它,除了 1)我真的不需要任何服务器交互的东西(尽管我可能会用它来引导所有 UI 元素资源文件),2)它完全致力于保持 View 最新。但也许这是一件好事?这个我不太清楚。

我研究过 Knockout.js,尽管它确实非常担心保持 View 最新,但我看过的演示都没有解决国际化问题。我的 i18n 需求很简单:我的应用程序中出现的每个文本字符串都需要来自表格(并且可以随时更改使用的语言)。当我在 Knockout.js 主页中看到类似的内容时:

optionsCaption="选择..."

我担心根据运行时变量设置使该字符串动态化是多么容易。也就是说,如果我想编写相当于:

optionsCaption=l10n("选择")

有没有一种相当轻松的方法来做到这一点,以及在整个 UI 中自动传播语言更改涉及什么?

有什么强烈建议让我考虑另一个可能更合适的框架吗?

此外,我假设我们将使用 jquery/ui 或 zepto(可能是 zepto)来消除动态页面更新和动画内容中的大量样板。对架构的这一部分有什么有用的想法吗?

最佳答案

我自己对此很好奇(knockout + i18n 搜索让我在这里),我使用 Jed 实用程序以及 Akasha 建议的 knockoutjs 做了一个快速而肮脏的 JSFiddle。我还必须使用一些 JQuery。

看看这里:http://jsfiddle.net/yUE7a/5/

我创建了一个绑定(bind)到您当前区域设置的自定义绑定(bind) (i18n)。 i18n 绑定(bind)从元素中获取文本并将其用作键,并将其替换为 Jed 的翻译文本。

语言环境本身是作为 ko.obervable 实现的,因此您可以更改语言环境值并让 knockoutjs 一次性更新所有翻译标签(您可能必须在 init 和 update 之间缓存 key ,因为它会被$(element).html() 调用)。

有一个问题仍然存在,当我将 Jed 包含在 JsFiddle 中时,所有样式都消失了。我不知道为什么以及这是否是 Jed + KnockoutJS 或仅 Jed + JsFiddle 的实际问题。

我以前从未使用过 Jed,所以我不知道它是否符合您的目的,但它应该足够简单,可以用另一个 i18n 框架替换 Jed。

希望这有帮助!

关于jquery - 哪个 JavaScript 框架擅长处理国际化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9687319/

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