调整区域设置,以便每周从星期一开始

调整区域设置,以便每周从星期一开始

我使用C.UTF-8区域设置,一切都很好,我对此非常满意,但是从周日开始的几周...
是否有单个或组合区域设置仅更改一周的第一天,而将日期和月份的名称保留在英语?

我只是想让它locale first_weekday回来2。无需特别关注任何应用程序。locale据我所知,它是由 POSIX 监管的(我很乐意得到纠正),所以,至少现在,我没有看到更多详细说明我的系统的特定动机。

编辑

下列的一条评论斯蒂芬·查泽拉斯我想告诉您,我正在使用 Debian Sid。

答案1

至少有三个选择:

  1. 从 C.UTF-8 创建一个新的语言环境,然后更改 first_weekday 值。我们称之为 X.UTF-8。在 Debian 中,如果您对这些目录有权限,则应该这样做:
    cp -R /usr/lib/locale/C.UTF-8 /usr/lib/locale/X.UTF-8
    cat /usr/share/i18n/locales/C | sed -E 's/first_weekday[[:blank:]]+1/first_weekday 2/g' | localedef --add-to-archive /usr/lib/locale/X.UTF-8 -i -
    LC_TIME=X.UTF-8 locale first_weekday

因此,您复制现有的定义,只是重新创建文件夹结构的一种懒惰方法,然后从原始的 C.UTF-8 (名称只是“C”)更改引用第一个工作日的行(它可能更短) ,带有位置参数,但我发现这样更具可读性)。

  1. 在现有的 C.UTF-8 语言环境中修改该值:
    cat /usr/share/i18n/locales/C | sed -E 's/first_weekday[[:blank:]]+1/first_weekday 2/g' | localedef --add-to-archive /usr/lib/locale/C.UTF-8 -i -
    LC_TIME=C.UTF-8 locale first_weekday
  1. 好吧,如果您对 en_GB 和 C.UTF-8 之间的其他差异感到满意,那么这些步骤应该可以进行更改:

根据您的系统,并非所有区域设置都立即可用。因此,首先,确保您有 en_GB.UTF-8 可用(否则您将收到错误“无法将 LC_ALL 设置为默认区域设置”):

locale -a

如果没有,请添加它。由于您的系统上没有信息,我无法告诉您如何操作。在 Debian/Ubuntu 中,您可以执行以下操作dpkg-reconfigure locales(或编辑/etc/locale.gen以添加区域设置,或者最有可能的是,取消注释,然后运行locale-gen)。

一旦 en_GB.UTF-8 出现在可用区域设置列表中,您就可以设置:

LC_TIME=en_GB.UTF-8

LC_TIME=en_GB.UTF-8 locale first_weekday

应该返回 2

Debian 文档有关如何使更改在不同环境下永久生效的更多信息。

相关内容