如何将 LC_TIME 变量设置为 en_DK 同时保持 en_US 为其他变量的系统默认值?

use*_*393 7 locale

我将系统默认设置为en_US.UTF-8. 但是(在其他荒谬的事情中)这使得星期日(周末)成为日历中一周的第一天。

我想使用LC_TIME变量,en_DK.UTF-8同时保留en_US.UTF-8其他所有变量的变量。

我已经生成了en_US.UTF-8anden_DK.UTF-8并且我曾经能够/etc/default/locale通过添加行来简单地进行编辑LC_TIME="en_DK.UTF-8"

但这不再有效,我不知道为什么。那么我怎样才能让它再次工作呢?

在人们开始告诉我破解en_US.UTF-8文本文件 (at /usr/share/i18n/locales) 之前,这也不起作用,因为更新会定期重置它。我想知道为此配置的“正确”方式是什么。

Rav*_*ina 6

这是我要做的:

  1. 检查启用了哪些区域设置:

    grep -v '^#' /etc/locale.gen
    
    Run Code Online (Sandbox Code Playgroud)

    你至少应该得到(或类似的东西):

    en_US.UTF-8 UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果不是,请启用它,并通过注释这些行来禁用不必要的区域设置。

  3. 生成语言环境:

    sudo locale-gen
    
    Run Code Online (Sandbox Code Playgroud)
  4. 设置默认区域设置:

    sudo localectl set-locale LANG=en_US.utf8 LC_TIME=en_DK.UTF-8
    
    Run Code Online (Sandbox Code Playgroud)
  5. 检查所有重要文件,例如:.profile.bashrc其他启动文件,以确保没有任何内容覆盖我们的配置。

它应该有效。


Gun*_*son 1

打开~/.profile进行编辑并添加此行:

export LC_TIME=en_DK.UTF-8
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu GNOME 上,您可能还需要运行以下命令:

gsettings reset org.gnome.system.locale region
Run Code Online (Sandbox Code Playgroud)