webpackエコシステムの新機能ですので、私はすべての概念を把握していませんが、私はそれを使用するアプリケーションに取り組んでいます。私はi18next(https://github.com/i18next/i18next参照)とそのXHR関連モジュール(https://github.com/i18next/i18next-xhr-backend)を設定しようとしています。webpackバンドルアプリケーションでi18nextを使用する
i18nextはXHR経由で翻訳ファイルを取得します。したがって、AJAXリクエストが終了すると、i18nextは指定されたコールバックで初期化されます。 基本的には、この初期化されたi18nextをすべてのモジュールで使用できるようにして、どこでも文字列を翻訳できます。
i18next-xhr-backendのgithubページにはwebpackに関するセクションがありますが、コードの構造と使用方法は実際に分かりません。
function loadLocales(url, options, callback, data) {
try {
let waitForLocale = require('bundle!./locales/'+url+'.json');
waitForLocale((locale) => {
callback(locale, {status: '200'});
})
} catch (e) {
callback(null, {status: '404'});
}
}
i18next
.use(XHR)
.init({
backend: {
loadPath: '{{lng}}',
parse: (data) => data,
ajax: loadLocales
}
}, (err, t) => {
// ...
});
私はこれをWebpackプラグインに変えて、どこでも利用できるようにしたいと考えました。しかし、それはこの仕事を達成する正しい方法ではないかもしれません。