Как читать языковые предпочтения из cookie - PullRequest
0 голосов
/ 02 апреля 2019

Моя настройка требует от меня чтения языковых предпочтений, установленных пользователем, из файла 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 и его отображения на следующих следующих страницах реакции (когда пользователь нажимает другую ссылку через маршрутизатор реакции).

...