作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找使用 hogan.js在浏览器中创建 html 表单模板。我读过 hogan 支持 i18n,但我找不到它如何工作的示例。你如何将翻译后的文本传递给 hogan,你在模板中放置了什么标签,我见过 {{_i}} 和 {{i18n}}?
最佳答案
看来我混淆了 older fork的 Mustache.js来自推特,Hogan一个单独的 mustache 编译器也来自 twitter。 fork 确实支持用于国际化的 {{_i}}
标签。然后,这将调用一个名为 _
的全局函数,您可以在其中提供自己的方法来查找翻译后的值。例如
translatedStrings = {
name: "Nom";
}
function _(i18nKey) {
return translatedStrings[i18nKey];
}
var template = "{{_i}}Name{{/i}}: {{username}}",
context = {username: "Jean Luc"};
Mustache.to_html(template, context);
将返回“Nom: Jean Luc”。而 Hogan 国际化是通过普通的 mustache lambda 表达式实现的,例如:
translatedStrings = {
name: "Nom";
}
var template = "{{#i18n}}Name{{/i18n}}: {{username}}",
context = {
username: "Jean Luc",
i18n: function (i18nKey) {return translatedStrings[i18nKey];}
};
Hogan.compile(template).render(context);
参见 http://mustache.github.com/mustache.5.html有关提供 lambda 的更多信息。所以主要区别在于,当使用 Hogan 进行渲染时,必须始终在上下文中提供查找翻译的功能,而 mustache 分支将查找全局方法。
关于javascript - 如何为 Hogan.js 配置国际化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211217/
我是一名优秀的程序员,十分优秀!