#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 не должен кэшировать маршруты для всех возможных локализаций приложения?