You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome浏览器locale存储位置及Number.toLocaleString语言不匹配问题

问题解答

1. JavaScript默认locale的获取来源

ECMAScript国际化API规范明确,当toLocaleString这类方法的locale参数传入undefined时,会直接使用宿主环境的默认区域设置。Chrome中这个默认值对应的是浏览器自身的UI界面语言,和你在语言设置页调整的网页内容语言优先级列表(即navigator.languages返回的内容)不是同一个配置。后者仅用于告知网页你偏好的内容展示语言,不会影响JS国际化API的默认行为。

2. Chrome的locale存储位置

不同操作系统存储路径不同,你使用的Ubuntu系统中,Chrome的默认locale存储在~/.config/google-chrome/Default/Preferences文件里,对应的字段是international.locale。如果通过命令行启动Chrome,系统的LANG环境变量优先级会高于配置文件里的设置。

3. 修改默认生效locale的操作方法

你之前只调整了网页内容的语言优先级,没有修改Chrome的UI界面语言,这就是默认locale不生效的核心原因。按以下步骤操作即可:

  • 打开chrome://settings/languages设置页
  • 找到你已经添加的荷兰语选项,点击右侧的三个点按钮
  • 选择「以这种语言显示Chrome」选项
  • 重启浏览器后配置就会生效,此时再运行num.toLocaleString(undefined, ...)就会输出荷兰语格式的30.000,65

补充说明:你主动传入navigator.languages时输出符合预期,是因为此时API会直接遍历你传入的语言列表,优先选择列表中支持的最高优先级语言,不会再读取默认的UI界面语言配置。


内容的提问来源于stack exchange,提问作者paul23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:39:02