Как использовать метод changeLanguage в next-i18next для изменения языкового стандарта?

#next.js #i18next #react-i18next #next-i18next

Вопрос:

Я пытаюсь изменить языковой стандарт по умолчанию в своем проекте одним нажатием кнопки. Я не хочу менять свой URL-адрес с помощью таких дополнительных путей, как fooo.com/fa .

Вот моя следующая конфигурация-i18next:

 module.exports = {
  i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fa'],
  },
};
 

И вот мой простой код для изменения языка и использования этого:

 const { t, i18n } = useTranslation('common');
   ///
<button onClick={() => i18n.changeLanguage('fa')}>
    Click to Change Language
</button>
<p>{t('title')}</p>
 

Но это не работает и застряло в языковом стандарте по умолчанию, который является EN.

Комментарии:

1. «Я не хочу изменять свой URL — адрес с помощью дополнительных путей» — есть причины, почему бы и нет? Вот как Next.js маршрутизация подпространства i18n предназначена для работы.

2. Это приведет к сбою нашего CDN (поскольку URL-адрес изменился и больше не кэшируется)… значит, у нас нет другого выхода ?

3. Я не уверен, что понимаю — разве CDN не должен кэшировать маршруты для всех возможных локализаций приложения?