Моя настройка требует от меня чтения языковых предпочтений, установленных пользователем, из файла cookie (этот файл cookie устанавливается сервером узла).
У меня есть ссылки для изменения языка в нижнем колонтитуле, который отлично работает. Как только я нажму на ссылку, язык будет немедленно изменен - как и ожидалось. Теперь я хотел бы, чтобы тот же эффект был выполнен, когда пользователь перезагрузит страницу, на этот раз, прочитав файл cookie. Cookie генерируется сервером узлов, который работает хорошо. Файл cookie имеет красный цвет, и журнал консоли выдает правильный результат. Часть, которая не работает как ссылки, это i18n.changeLanguage (''). В настоящее время после перезагрузки страницы перевод возвращается к языку по умолчанию, установленному на английский. Только переместившись на другую страницу, cookie запускается. Я уверен, что с моей стороны может быть некоторая путаница. Что-то, чего я еще не понимаю, или я упускаю из виду.
componentWillMount() {
const {i18n} = this.props;
const languageCookie = this.getCookie('ac_cookies_language');
console.log('languageCookie', languageCookie)
if(languageCookie) {
console.log('cookies found')
switch(languageCookie) {
case 'pl' :
console.log('Polish language set');
i18n.changeLanguage('pl');
break;
case 'en' :
console.log('English language set');
i18n.changeLanguage('en');
break;
case 'es' :
console.log('Spanish language set');
i18n.changeLanguage('es');
break;
default:
console.log('Unknown language')
}
}
}
Это то, что я пробовал до сих пор, но это происходит только в результате чтения файла cookie и его отображения на следующих следующих страницах реакции (когда пользователь нажимает другую ссылку через маршрутизатор реакции).