umi icon indicating copy to clipboard operation
umi copied to clipboard

[Bug] 国际化配置默认语言为英文不生效

Open linjc opened this issue 1 year ago • 7 comments

在.umirc.ts文件配置国际化默认英文,页面进去还是默认中文,需要调用setLocale手动切换英文,下次进页面才是英文。

清除掉localStorage的值后,再刷新还是默认中文。

image

linjc avatar Dec 19 '24 11:12 linjc

解决了吗?是这个吗 image 自定义获取语言。默认是读取的浏览器语言

zhangxinyong12 avatar Dec 25 '24 10:12 zhangxinyong12

@zhangxinyong12 通过判断localStorage的值来手动默认是暂时方案,配置项不生效的Bug还是存在的。

linjc avatar Dec 26 '24 07:12 linjc

你本来有一个 localStorage 的值是吧?你清空 localStorage 之后,配置就生效了。你有修改默认方案的时候,可以改一个 localStorage 的 key

xiaohuoni avatar Dec 30 '24 02:12 xiaohuoni

@xiaohuoni 是我描述过于繁琐了😂,这么说吧,localStorage没任何值的情况下,config里面配置的default值为英文不生效。

linjc avatar Dec 30 '24 02:12 linjc

@xiaohuoni 是我描述过于繁琐了😂,这么说吧,localStorage没任何值的情况下,config里面配置的default值为英文不生效。

因为localStore取值不到getLocal的函数就返回了或运算的'zh-cn'。可以这么说 你本地初始化的情况下就是中文。因为代码就是默认中文。要么你就去改那个getLocal的函数本地缓存为空返回英文

lzq-19961217-lzq avatar Jan 10 '25 08:01 lzq-19961217-lzq

@xiaohuoni 是我描述过于繁琐了😂,这么说吧,localStorage没任何值的情况下,config里面配置的default值为英文不生效。

因为localStore取值不到getLocal的函数就返回了或运算的'zh-cn'。可以这么说 你本地初始化的情况下就是中文。因为代码就是默认中文。要么你就去改那个getLocal的函数本地缓存为空返回英文

那config里面提供default配置意义是什么?

linjc avatar Jan 12 '25 07:01 linjc

locale: { default: 'en-US', baseNavigator: false, //开启浏览器语言检测 默认是true 不填写也是 true },

开启浏览器语言检测。默认情况下,当前语言环境的识别按照:localStorage 中 umi_locale 值 > 浏览器检测 > default 设置的默认语言 > zh-CN

wangyy1 avatar Feb 18 '25 07:02 wangyy1

locale: { default: 'en-US', baseNavigator: false, //开启浏览器语言检测 默认是true 不填写也是 true },

开启浏览器语言检测。默认情况下,当前语言环境的识别按照:localStorage 中 umi_locale 值 > 浏览器检测 > default 设置的默认语言 > zh-CN

太棒了。多语言,默认是用户浏览器的语言标识

zhangxinyong12 avatar Oct 11 '25 06:10 zhangxinyong12