我可以在i18next的(异步)初始化之前使用i18next-browser-languageDetector

时间:2019-11-14 12:30:18

标签: javascript reactjs i18next i18next-browser-languagedetector

我正在这样使用i18nexti18next-browser-languageDetector

await (i18next
  .use(initReactI18next)
  .use(LanguageDetector)
  .init({
    resources,

    fallbackLng: process.env.DEV ? 'dev' : DEFAULT_LANGUAGE,

    debug: Boolean(process.env.DEV),

    returnObjects: true,

    interpolation: {
      escapeValue: false,
    },

    detection: {
      // Order and from where user language should be detected:
      order: ['localStorage', 'cookie', 'navigator'],

      // Keys or params to lookup language from:
      lookupLocalStorage: I18N_LANGUAGE_KEY,
      lookupCookie: I18N_COOKIE_KEY,

      // Cache user language on:
      caches: ['localStorage', 'cookie'],

      // Only detect languages that are in the whitelist:
      checkWhitelist: true,
    },
  }));

现在,检测是在i18next库的初始化阶段进行的,该阶段是异步的,因此,如果我要检查已检测到的语言(i18next.language),则需要等待完成。

问题是我需要在i18next加载资源之前检测语言,以便在向后端发出任何请求之前在Accept-Language中设置axios标头。

我知道自己可以自己阅读localStoragecookiesnavigator,但是如果有以下情况,我想使用i18next-browser-languageDetector中已内置的功能可能。

0 个答案:

没有答案