在webpack捆绑应用程序中使用i18next

时间:2017-04-13 13:42:52

标签: javascript webpack i18next

我对webpack生态系统很陌生,所以我没有掌握它的所有概念,但我正在开发一个使用它的应用程序。我正在尝试设置i18next(请参阅:https://github.com/i18next/i18next)及其XHR关联模块(https://github.com/i18next/i18next-xhr-backend)。

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插件,希望它随处可用。但它可能不是完成这项任务的正确方法。

1 个答案:

答案 0 :(得分:0)

如果您想使用网络包捆绑您的翻译,可以尝试https://github.com/atroo/i18next-resource-store-loader