наличие CORS при смене языка с библиотекой next-i18next - PullRequest
0 голосов
/ 19 апреля 2020

У меня возникают cors при смене языка с помощью функции i18n.changeLanguage. У меня есть две кнопки с методом onClick, и я вызываю пользовательскую функцию с именем changeLang. Внутри этой функции я вызываю функцию 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>

enter image description here

и моя конфигурация 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'],
  },
});

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Я получил ошибку. Вот правильная версия. Я добавил внутренний объект и 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',
  }
});
0 голосов
/ 19 апреля 2020

Исходный код библиотеки выглядит как значение по умолчанию localePath имеет public/static/locales в качестве значения.

Обратите внимание , что это не так У вас нет первого sla sh, попробуйте удалить его.

...