Как в nuxt.config.js получить текущую локаль и довавить её в headers axios
Использую NuxtJS, как вывести выбранную пользователем локаль в заголовки axios? Что бы при запросе к бэкенду передавался заголовок 'Accept-Language' с выбранной локалью.
nuxt.config.js
...
// Modules: https://go.nuxtjs.dev/config-modules
modules: [
// https://go.nuxtjs.dev/axios
'@nuxtjs/axios',
// https://go.nuxtjs.dev/pwa
'@nuxtjs/pwa',
'@nuxtjs/i18n',
],
i18n: {
nuxtI18nHead: true,
strategy: 'prefix_except_default',
defaultLocale: "en",
locales: [
{
code: 'de',
ico: 'de-DE',
file: 'de-DE.json'
},
{
code: 'ru',
ico: 'ru-RU',
file: 'ru-RU.json'
},
{
code: 'en',
ico: 'en-US',
file: 'en-US.json'
},
],
detectBrowserLanguage: {
useCookie: true,
cookieKey: "i18n_redirected",
alwaysRedirect: false,
fallbackLocale: "en",
redirectOn: 'root',
}
},
// Axios module configuration: https://go.nuxtjs.dev/config-axios
axios: {
baseURL: 'http://127.0.0.1:8000',
headers: {
common: {
'Accept-Language': 'en' /// Получить тут выбранную локаль
},
}
},
Ответы (1 шт):
Автор решения: eri
→ Ссылка
В конфиг не получится. Он работает только при компиляции.
Если в компоненте, то
this.$axios.setHeader('Accept-Language', this.$i18n.locale )
Если в плагинах, то можно попробовать:
export default function ({ app, $axios }) {
$axios.setHeader('Accept-Language', app.i18n.locale )
app.i18n.onLanguageSwitched = (oldLocale, newLocale) => {
$axios.setHeader('Accept-Language', newLocale )
}
}