javascript - 如何使用 Handlebars.js( mustache 模板)制作 i18n?

标签 javascript jquery internationalization handlebars.js mustache

我目前正在使用 Handlebars.js(与 Backbone 和 jQuery 相关联)制作一个几乎完全由客户端呈现的 Web 应用程序,并且我遇到了这个应用程序的国际化问题。

我怎样才能让它工作?

有没有插件?

最佳答案

我知道这已得到解答,但我想分享我的简单解决方案。为了使用 I18n.js(我们在工作中的项目中使用它)构建 Gazler 的解决方案,我只使用了一个非常简单的 Handlebars 助手来促进动态本地化的过程:

处理程序

Handlebars.registerHelper('I18n',
  function(str){
    return (I18n != undefined ? I18n.t(str) : str);
  }
);

模板

<script id="my_template" type="x-handlebars-template">
    <div>{{I18n myVar}}</div>
</script>

这样做的主要优点是整个 json 对象没有昂贵的前/后处理。更不用说传入的 json 是否包含嵌套对象/数组,如果对象很大,查找和解析它们所花费的时间可能会很昂贵。

干杯!

关于javascript - 如何使用 Handlebars.js( mustache 模板)制作 i18n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760332/

相关文章:

javascript - Jquery触发器一次只对addEventListener指定的一个事件起作用

javascript - $ ('#foo' ).remove() 可能存在 jQuery 内存问题?

javascript - Firefox 中的 Jquery hashchange 问题

ios - App在ios中的本地化错误

angularjs - Angular 平移变量替换

javascript - 如何在 javascript 中为新添加的 div 指定另一个宽度

javascript - JQgrid:俄罗斯数据显示为垃圾/无效符号

javascript - 当屏幕宽度小于或大于时防止 javascript 运行

javascript - 单行codemirror渲染代码

C#/Razor - 从 RazorEngine 模板访问本地化的字符串资源