我的设置要求我从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单击了不同的链接)而导致的。