为什么浏览器不尊重 LC_TIME?

为什么浏览器不尊重 LC_TIME?

我使用 en_US 作为系统语言,但使用 pl_PL 作为日期格式。它在整个系统中工作正常,并且运行date给我一个格式正确的日期。它还在 GUI 语言设置中将波兰语显示为时间格式。

但在任何浏览器(Chrome、Chromium、Firefox)中我都有美国格式!例如在日期输入中、JS 中的日期等......

console.log(new Date().toLocaleString())
// shows      9/26/2021, 3:29:46 PM
// should be  26.09.2021, 15:29:46 

区域设置:

LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=

要重现此用法:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_tolocalestring,或创建一个名为index.html以下内​​容的文件:

<!DOCTYPE html>
<html>
  <head>
<meta charset="UTF-8">  
  </head>
  <body>
    Hi!
    <script>
     console.log(new Date().toLocaleString())
    </script>
  </body>

</html>

然后使用LC_ALL您想要尝试的任何值和浏览器组合打开此文件:

LC_ALL=el_GR.utf8 firefox index.html

然后,查看 javascript 控制台(通常通过按 即可使用F12),您将看到日期格式忽略了 LC 设置。

我在 Windows 机器上还有 en 表示语言和 pl 表示日期,并且工作正常。为什么 Linux 不能做到这一点?

我已经处理这个问题一年了。我在谷歌上找到的都是有类似问题但没有解决方案的人,或者系统中的日期格式有问题。

系统:Linux Mint 20 Xfce

相关内容