技术用的是 react, react-redux, and react-saga 那一套。
现在要做多语言支持,所以,用户设置里面有一项,语言设置 language settings. 默认是当前浏览器的语言 locale 。但是用户可以修改成自己想要使用的任何语言,比如 日文,俄语,中文,等等。
问题来了,在 settings 页面,用户选择了自定义的 locale 后,这个值我们是会保存下来的,是会更新 state 状态的,然后页面就刷新了。而且,刷新是多个页面刷新,不仅仅是当前设置页面。可是,我们不想这样,而是保持不变。直到用户下一次打开网站,重新加载时,发现 locale 使用了自定义的,然后使用新的语言。(因为有些功能,必须网站重新打开,初始化时加载,其它语言,才能够成功,也就是说,即使实时刷新页面,这个刷新是不完整的,可能会出问题)
想过添加一个临时的 flag,如果修改了语言设置,则设置为 1. 然后 react 刷新时,如果发现为 1,语言不变,还是上次的(那还得有添加一个 readonly 的 state,记录网站打开时的那个语言)。而且,state 的是 react engine 自动刷新的,没有太好的办法控制它。
特来请教一下大家,有没有比较成熟 /合适的方法。