【问题标题】:handlebars i18n helper inside each loop每个循环内的车把 i18n 助手
【发布时间】:2020-03-02 15:46:28
【问题描述】:

我正在使用快速把手来生成我的视图,但我遇到了一个问题,即我的视图中的某些内容没有正确翻译,因为我在 #each 助手中调用了 I18n 助手。

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);
        }
    }     
}

如何解决问题?

【问题讨论】:

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


    【解决方案1】:

    它对我有用:

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

    这会将上下文向上移动

    【讨论】:

      【解决方案2】:

      更简单易读的解决方案是:

      {{../i18n "parameter"}}
      

      上述解决方案也适用于动态变量

      【讨论】:

        猜你喜欢
        • 2013-02-05
        • 2012-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-02
        • 1970-01-01
        • 1970-01-01
        • 2014-07-25
        相关资源
        最近更新 更多