3

パラメータをRequireJS i18n翻訳文字列に渡すことは可能ですか? たとえば、次のように定義したいと思います。

// nls/strings.js
define({
  'record_created': 'A record for :name has been created.'
});

そして、次のようにデータを渡します。

var string = i18n.record_created('Nikola Tesla');

これが可能であると言うドキュメントには何も見つかりませんが、以前に他の i18n ライブラリでこの種のことを行ったことがあります。

4

1 に答える 1

2

このトピックに関するその他のリンク:

おそらく、選択したテンプレート言語から自分で何かを構築することができます。例えば:

<script>
    define("myProps", {
        "record_created": "A record for {{name}} has been created at {{date}}"
    });

    define("myI18N", ["handlebars"], function(Handlebars) {
        function format(template, context) {
            var compiled = Handlebars.compile(template);
            return compiled(context);
        }

        function Wrapper(props) {
            var ob = {};
            for (var i in props) {
                ob[i] = format.bind(null, props[i]);
            }
            return ob;
        }

        return Wrapper;
    });

    require(["myProps", "myI18N"], function(props, i18n) {
        var ob = i18n(props);
        console.log(ob.record_created({
            name: "Meli",
            date: new Date()
        }));
    });
</script>

版画:

A record for Meli has been created at Mon Sep 23 2013 20:32:39 GMT+0100 (GMT Daylight Time)

設定:

<script>
    require = {
        paths: {
            "handlebars": "https://rawgithub.com/wycats/handlebars.js/v1.0.12/dist/handlebars"
        },
        shim: {
            'handlebars': {
                exports: 'Handlebars'
            }
        }
    };
</script>
<script src="http://requirejs.org/docs/release/2.1.8/comments/require.js"></script>
于 2013-09-23T19:38:00.107 に答える