Javascript 每个环内的把手i18n辅助件
我正在使用express Handlebar生成我的视图,但我遇到了一个问题,我的视图中的一些内容没有正确翻译,因为我正在调用I18n helper inside#each helper 索引.把手:Javascript 每个环内的把手i18n辅助件,javascript,node.js,handlebars.js,express-handlebars,Javascript,Node.js,Handlebars.js,Express Handlebars,我正在使用express Handlebar生成我的视图,但我遇到了一个问题,我的视图中的一些内容没有正确翻译,因为我正在调用I18n helper inside#each helper 索引.把手: {{#if roomsList}} {{#each roomsList}} <section id="roomNumber-{{RoomNumber}}"> <div class="room-status">
{{#if roomsList}}
{{#each roomsList}}
<section id="roomNumber-{{RoomNumber}}">
<div class="room-status">
<div class="room-number">
<p>{{RoomNumber}}</p>
</div>
<div class="room-description room-status-{{RoomStatus}}">
<p class="clean">{{i18n "clean"}}</p>
<p class="dirty">{{i18n "dirty"}}</p>
<p class="in-progress">{{i18n "in-progress"}}</p>
<p class="to-inspect">{{i18n "to-inspect"}}</p>
</div>
</div>
<span class="clearfix"></span>
</section>
{{/each}}
{{/if}}
{{{#if roomsList}
{{{#每个房间列表}
{{RoomNumber}}
{{i18n“clean”}
{{i18n“dirty”}
{{i18n“进行中”}
{{i18n”to inspect”}
{{/每个}}
{{/if}
JS:
var handlebar=require('handlebar');
var i18n=需要('i18n');
module.exports={
//设置默认布局
defaultLayout:'默认',
//登记车把助手
助手:{
//注册你的助手
//多语言助手
i18n:函数(){
返回i18n.\uuuu.apply(这是参数);
},
__n:函数(){
返回i18n.\u\n.apply(这是参数);
},
部分:功能(名称、选项){
如果(!this.\u sections)this.\u sections={};
this._sections[name]=options.fn(this);
返回null;
},
特征线:函数(文本){
text=handlebar.Utils.escapeeexpression(text);
text=text.replace(/(\r\n |\n |\r)/gm,
);
返回新把手。安全字符串(文本);
}
}
}
如何解决这个问题?它对我有效:
{{#with ..}}{{i18n "to-inspect"}}{{/with}}
这会将上下文向上移动更容易阅读的解决方案有:
{{../i18n "parameter"}}
上述解决方案也适用于动态变量
{{../i18n "parameter"}}