@TheSerKat

Как i18next.language вставить в API Accept-Language?

Надо получить какой сейчас язык на сайте и отправлять API, в Accept-Language записывать какой сейчас язык.
При загрузки сайта сразу идут запросы на сервер и проблема в том что i18next.language изначально undefined
Нужно как то дождаться пока проинициализируется i18next и только потом слать запросы

api.js
import * as axios from 'axios'
import i18next from 'i18next';

const instance = axios.create({
    baseURL: 'https://api/',
    headers: {
        'Accept-Language':  i18next.language
    }
})


i18n.js
import i18n from 'i18next'
import Backend from 'i18next-http-backend'
import LanguageDetector from 'i18next-browser-languagedetector'
import { initReactI18next } from 'react-i18next'

i18n
    .use(Backend)
    .use(LanguageDetector)
    .use (initReactI18next)
    .init({
        fallbackLng: 'ru',
        debug: true,
        ns: ["translation", "Header", "MainSlider", "Centers", "Purpose", "Contact"],
        defaultNS: 'translation',
        react: {
            useSuspense: true,
            wait: true
        },
        interpolation: {
            escapeValue: false
        }
    })

export default i18n;
  • Вопрос задан
  • 959 просмотров
Решения вопроса 1
@ReactLover
instance.interceptors.request.use(config => {
  config.headers['Accept-Language'] = i18next.language;
  return config;
})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы