如何从Cookie读取语言偏好

时间:2019-04-02 06:14:10

标签: react-i18next

我的设置要求我从cookie中读取用户设置的语言首选项(此cookie由节点服务器设置)。

我有一些链接可以更改页脚中的语言,效果很好。单击链接后,ti会立即更改语言-如预期的那样。现在,我希望一旦用户重新加载页面(这次是通过读取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并将其显示在接下来的下一个React页面上(一旦用户通过React Router单击了不同的链接)而导致的。

0 个答案:

没有答案