当使用i18n.changeLanguage函数更改语言时,我遇到了cors。我有两个按钮,这两个按钮具有onClick方法,并调用一个名为changeLang.Inside的自定义函数,该函数是我正在调用的i18n.changeLanguage函数,并将其传递给lng参数。
const changeLang = lng => {
i18n.i18n.changeLanguage(lng);
};
<button onClick={() => changeLang('en')} className="en">
EN
</button>
<button onClick={() => changeLang('tr')} className="tr">
TR
</button>

我的i18n配置就是这样的。
import NextI18Next from 'next-i18next';
import { initReactI18next } from 'react-i18next';
export default new NextI18Next({
use: [initReactI18next],
defaultLanguage: 'tr',
fallbackLng: 'en',
otherLanguages: ['en'],
localeSubpaths: {
en: 'en',
},
localePath: '/app/static/locales',
detection: {
order: ['cookie', 'localStorage'],
lookupCookie: 'next-i18next',
lookupLocalStorage: 'i18nextLng',
caches: ['cookie', 'localStorage'],
},
});发布于 2020-04-20 00:08:21
从库的source code看,默认的localePath有一个public/static/locales作为值。
注意没有第一个斜杠,试着去掉它。
发布于 2020-04-20 17:52:04
我得到的error.Here是正确的版本,我在里面添加了后端对象和loadPath,它解决了这个问题。
import NextI18Next from 'next-i18next';
import { initReactI18next } from 'react-i18next';
export default new NextI18Next({
use: [initReactI18next],
defaultLanguage: 'tr',
fallbackLng: 'en',
otherLanguages: ['en'],
localeSubpaths: {
en: 'en',
},
localePath: '/app/static/locales',
detection: {
order: ['cookie', 'localStorage'],
lookupCookie: 'next-i18next',
lookupLocalStorage: 'i18nextLng',
caches: ['cookie', 'localStorage'],
},
backend: {
loadPath: 'app/static/locales/{{lng}}/{{ns}}.json',
}
});https://stackoverflow.com/questions/61304415
复制相似问题