Javascript 每个环内的把手i18n辅助件

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">

我正在使用express Handlebar生成我的视图,但我遇到了一个问题,我的视图中的一些内容没有正确翻译,因为我正在调用I18n helper inside#each helper

索引.把手:

{{#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"}}