我试图编写一个帮助程序(或其他可能有用的东西)来翻译包含未编译变量的字符串。我希望继续使用块表达式a[0]
,因为我有使用正则表达式设置的收割机。
所以问题是{{#i18n}}{{/i18n}}
在被翻译之前被编译成{{#i18n}}Hi {{ name }}{{/i18n}}
,这会成为问题,而且不像您想象的那样可扩展。我希望它首先翻译Hi Bob
然后编译它。我无法将变量移到外面,因为大多数其他句子更长,并且在我们的译员翻译时需要变量来获取上下文。
我现在的助手看起来像这样:
Hi {{ name }}
然后我编译并填充这样的数据:
hb.registerHelper('i18n', function(options) {
return i18n.__({phrase: options.fn(this), locale: language});
});
我该如何解决这个问题,最好还是使用var compiled = hb.compile(layout.toString());
var html = compiled(templateData);
。