首页 > 解决方案 > 根据位置/浏览器语言设置更改语言以与 i18next 做出反应

问题描述

我需要根据用户位置和/或浏览器语言设置更改我的应用程序的语言。我将如何在 i18next 中做到这一点?它必须是 i18Next,因为该项目已经设置为可以使用它,并且使用另一个库需要我很长时间才能重构才能正常工作。

到目前为止,这是我的代码。我知道我需要在后端做一些事情,只是不知道是什么。

import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import Backend from "i18next-xhr-backend";

i18n
  .init({
    backend: {

      loadPath: "/locales/{{lng}}/{{ns}}.json"
    },
    fallbackLng: "en",
    debug: false,
    keySeparator: false,
  });

export default i18n;

标签: javascriptreactjsi18next

解决方案


我使用了 i18next-browser-languagedetector。文档和示例在这里https://github.com/i18next/i18next-browser-languageDetector。字符串 const options = { order: ['querystring', 'navigator'], lookupQuerystring: 'lng' } 和 init .use(LanguageDetector) .use(initReactI18next)

将添加到您的 i18n.js 文件中。


推荐阅读