Jquery 哪个javascript框架擅长处理国际化?
假设我正在构建一个相当大的基于浏览器的交互式媒体应用程序,我有以下要求:Jquery 哪个javascript框架擅长处理国际化?,jquery,backbone.js,sencha-touch,knockout.js,zepto,Jquery,Backbone.js,Sencha Touch,Knockout.js,Zepto,假设我正在构建一个相当大的基于浏览器的交互式媒体应用程序,我有以下要求: 仅限Webkit(假设桌面上有chrome) 平板电脑和台式机版本,可能在UI上存在细微差异 完全客户端:没有任何服务器交互 可能的最佳性能 完全国际化 我将构建很多这样的应用程序 长期可维护性不是优先事项(此处无TDD) 从一个项目到另一个项目的重用和利用是一个优先事项 设计师主宰一切——大量时间将花在外观和动画上 非常短的开发时间表 小而出色的团队 我正在寻求以前做过类似事情的人的建议,以避免事先做出一些错误的选择
- 仅限Webkit(假设桌面上有chrome)
- 平板电脑和台式机版本,可能在UI上存在细微差异
- 完全客户端:没有任何服务器交互
- 可能的最佳性能
- 完全国际化
- 我将构建很多这样的应用程序
- 长期可维护性不是优先事项(此处无TDD)
- 从一个项目到另一个项目的重用和利用是一个优先事项
- 设计师主宰一切——大量时间将花在外观和动画上
- 非常短的开发时间表
- 小而出色的团队
选项caption=“选择…”
我担心基于运行时变量设置使字符串动态化会有多容易。也就是说,如果我想写以下内容:
选项caption=l10n(“选择”)
有没有一种合理的无痛方法可以做到这一点,以及在整个UI中自动传播语言变化涉及到什么
有没有强烈建议我考虑另一个框架,这可能更合适
另外,我假设我们将使用jquery/ui或zepto(可能是zepto)来消除动态页面更新和动画中的大量样板文件。关于架构的这一部分有什么有用的想法吗?我想您会发现有很多Java脚本可以满足您的需求。如果您想快速了解各种框架的感受,我建议您看看,在18个不同的JavaScript框架中实现了相同的应用程序,包括您为这个问题标记的框架。我有,对这个项目来说,GWT是一项我认为值得考虑的技术。它有许多“企业”功能,如内置的i18n,加上使用强类型Java语言,使重用变得更加容易。我还没有尝试过这些功能,但它们似乎很容易与任何框架一起使用: javascript的gettext:
灵活的复数形式和性别形式:只需从服务器端生成所有html,并使用语言标签即可。我使用PHP并使用knockoutjs和sammyjs来实现这一点。html对所有语言都使用标签,我对每种语言都有一个不同的PHP文件,其中包含该语言中的所有标签及其值
此解决方案的“缺点”是,当语言发生变化时,您可能需要重新加载页面(如果您要使用单页应用程序解决方案,这可能只是一个缺点)。我自己也对此很好奇(这里有一个击倒+i18n搜索),我使用Jed实用程序和Akasha建议的knockoutjs快速地完成了一个肮脏的JSFiddle。我还必须使用一些JQuery 请看这里: 我创建了一个自定义绑定(i18n),它绑定到您当前的语言环境。i18n绑定从元素中获取文本并将其用作键,然后用来自Jed的翻译文本替换它 语言环境本身是作为ko.obervable实现的,因此您可以更改语言环境值并让knockoutjs一次性更新所有翻译标签(您可能必须在init和update之间缓存键,因为它被$(element).html()调用覆盖) 有一个问题仍然存在,当我将Jed包括在JsFiddle中时,所有的样式都消失了。我不知道为什么,也不知道这是Jed+KnockoutJS的实际问题还是只有Jed+JSFIDLE的问题 我以前从未使用过Jed,所以我不知道它是否符合您的目的,但它应该足够简单,可以用另一个i18n框架替换Jed
希望这有帮助 我最近也遇到了同样的问题,因为有很多JS工具可以做到这一点,所以它们中没有一个(据我所知)能够很好地使用KnockoutJS,并且能够在不刷新页面的情况下更改语言 因此,我创建了一个我自己无法处理的lof,名为 它适用于简单文本和变量:
<div data-bind="html: i18n.get('hello')"></div>
<div data-bind="html: i18n.get('hello_name',{'name' : 'John Doe'})"></div>
也许我不清楚。没有“服务器端”。这是一个本地应用程序,恰好在浏览器中运行。您能接受其中一个答案吗?我已经在KnockoutJS+Jed中为您提供了一个i18n的演示。对不起,Magnus,但是这是最重要的