我正在使用与 Mustache 规范兼容的 Hogan.js。而且我在实施一种可靠的多元化方式时遇到了麻烦。我想继续使用 Hogan 并使用http://i18next.com/进行 i18n 处理
做这样的事情适用于简单的情况
tpl:
{{#plural(count)}}
I have {{count}} apples!
{{/plural(count)}}
数据:
{
count: 2,
'plural(count)': function () {
return function () {
return _t[arguments[0].trim()][this['count']]
}
}
}
这需要在单独的步骤中进行解析/扫描/渲染,以便能够生成所有必需的复数方法(plural(key.val) 等),但这很好,它只需要在服务器启动时完成一次。
这打破了像
{{#plural(key.nested)}}
如果数据看起来像,那将匹配
{
'plural(key': {
'val)': ...
}
}
这也需要我手动从上下文中查找值,这不是一个主要问题,但在某些情况下可能无法解决 lambda/partials
对于默认的翻译映射,事情要简单得多,而且很容易处理