javascript - 每个循环内的 Handlebars i18n 助手

标签 javascript node.js handlebars.js express-handlebars

我正在使用快速 Handlebars 来生成我的 View ,但是我遇到了一个问题,即我的 View 中的某些内容没有正确翻译,因为我在 #each 中调用了 I18n 助手。 helper 。
Index.handlebars:

{{#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}}
JS:
var Handlebars = require('Handlebars');
var i18n = require('i18n');

module.exports = {
    //Setup our default layout
    defaultLayout: 'default',
 
    //Register handlebars helpers
    helpers: {
    //Register your helpers
        //Helper for multiple languages
        i18n: function () {
            return i18n.__.apply(this, arguments);
        },
        __n: function () {
            return i18n.__n.apply(this, arguments);
        },
        section: function (name, options) {
            if (!this._sections) this._sections = {};
            this._sections[name] = options.fn(this);
            return null;
        }, 
        breaklines: function(text) {
            text = Handlebars.Utils.escapeExpression(text);
            text = text.replace(/(\r\n|\n|\r)/gm, '<br>');
            return new Handlebars.SafeString(text);
        }
    }     
}
我该如何解决这个问题?

最佳答案

这个对我有用:

{{#with ..}}{{i18n "to-inspect"}}{{/with}}

这会将上下文向上移动

关于javascript - 每个循环内的 Handlebars i18n 助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49784766/

相关文章:

javascript - 在 Mongo 中查找包含 ISODate 字段的文档

javascript - 动态创建的 SVG 不适用于 Firefox,但适用于 Chrome

javascript - Node JS 回调

javascript - jestjs 如何测试使用 Performance.now() 的函数?

javascript - 如何防止手动更改 uib-datepicker 大于 max-date 的日期

javascript - 加载完成后删除 renderTemplate ember 路由中的模板

templates - Uncaught Error : Template was precompiled with an older version of Handlebars

javascript - Angular 2 模板选择器未知

javascript - 如何设置 Handlebars 布局目录?

javascript - 使用express.io 将 Angular Controller 转换为实时数据