javascript – 反映i18next和更正语言的正确方法

前端之家收集整理的这篇文章主要介绍了javascript – 反映i18next和更正语言的正确方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用React,i18next和i18next-browser-languagedetector开发多语言应用程序.

我以下列方式初始化i18next:

i18n
  .use(LanguageDetector)
  .init({
    lng: localStorage.getItem(I18N_LANGUAGE) || "pt",fallbackLng: "pt",resources: {
      en: stringsEn,pt: stringsPt
    },detection: {
      order: ["localStorage","navigator"],lookupQuerystring: "lng",lookupLocalStorage: I18N_LANGUAGE,caches: ["localStorage"]
    }
  });

export default i18n;

我已经实现了一个语言选择器,只需将localStorage中的值更改为用户选择的值.

这是正确的做法吗?

我问,因为即使这样,我觉得我是通过设置localStorage.getItem(I18N_LANGUAGE)||“欺骗” “pt”,我没有像我应该使用语言检测.

解决方法

根据 documentation,您不需要自己指定语言:
import i18next from 'i18next';
import LngDetector from 'i18next-browser-languagedetector';

i18next
  .use(LngDetector)
  .init({
    detection: options
  });

而根据i18next中的this piece of source,它确实使用了插件的检测功能

if(!lng&& this.services.languageDetector)lng = this.services.languageDetector.detect();

Is this the correct way of doing it?

所以,不,不是.让插件做它的工作.

猜你在找的JavaScript相关文章