3

私たちのプロジェクトでは、モジュール定義に require.js を使用しています。Web プロジェクトは多言語サポートも提供します。その場合、require.js バンドル i18n を使用します。r.js による最適化が処理されるまで、すべてが機能します。

main.js ファイルでは、次のコード行を定義しました。

config: {
    i18n: {
        locale: localStorage.getItem('locale') || 'de-de'
    }
}

したがって、ユーザーは言語を切り替えることができます。コードのどこかにそれがあります:

    'click .lang-selection' : function(ev){
        localStorage.setItem('locale',$(ev.currentTarget).attr('data-language'));
        location.reload();
    }

しかしr.jsでの最適化部分になると問題が発生。

Error: エラー: mainConfigFile /home/ch/html5-app/src/web/main.js の構成は、オプティマイザーでの実行中に正しく評価できないため、使用できません。有効な JSON でもある構成のみを使用するか、mainConfigFile を使用せずに、必要な構成値をビルド ファイルまたはオプティマイザーに指定されたコマンド ライン引数にコピーします。Function.createConfig で (/home/ch/html5-app/bin/r.js:24283:23)

誰かがそれまたは別のアプローチに対する解決策を持っていますか? たとえば、言語ごとに最適化された独自のファイルを作成しますか?

さらに js.build.js ファイル

    ({
    baseUrl: "../",
    name: "src/web/main",
    paths: {
        // require.js
        requirejs : 'vendor/backbone/require.215',
        // app specific modules
        root: 'src/web/app/js',
        templates : 'src/web/app/templates',
        // shared modules
        shared: 'src/shared/app/js',
        confighandler : 'src/shared/app/js/config/confighandler',
        root_config : 'src/web/app/js/config/config',
        layout: 'src/shared/app/js/views/layout',
        general: 'src/shared/app/js/general',
        helper: 'src/shared/app/js/helper',
        session: 'src/shared/app/js/session',
        vent: 'src/shared/app/js/vent',
        view: 'src/shared/app/js/views',
        model: 'src/shared/app/js/models',
        module : 'src/shared/app/js/modules',
        collection: 'src/shared/app/js/collections',
        nls : 'empty:',
        facebookSDK: 'empty:'
    },
    mainConfigFile: '../src/web/main.js',
    preserveLicenseComments: false,
    stubModules : ['text'],
    inlineText: true,
    // optimize: 'none',
    include: ['requirejs']
})
4

0 に答える 0