javascript - 根据位置/浏览器语言设置更改语言以与 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;
解决方案
我使用了 i18next-browser-languagedetector。文档和示例在这里https://github.com/i18next/i18next-browser-languageDetector。字符串
const options = {
order: ['querystring', 'navigator'],
lookupQuerystring: 'lng'
}
和 init
.use(LanguageDetector)
.use(initReactI18next)
将添加到您的 i18n.js 文件中。
推荐阅读
- java - Chrome CustomTabs CustomTabsCallback onPostMessage 未调用
- sql - 将左外连接添加到递归语句导致语法错误
- r - R - (Tidyverse) 将多个观测值压缩为一个
- python - 正则表达式从 Python 中的证书中删除开头和结尾
- r - R构建一个包为小插图提供了不同的输出
- regex - 正则表达式匹配承载令牌
- google-maps - Google Maps API - PlacesAutocomplete 类型问题
- css - 使用 Shiny 在单元格中显示多个图像时如何调整图像大小和更改图像之间的间距
- sql - TSQL 查询 - 匹配所有键值对
- c++ - 小写到大写元音 C++