
我想更改本地化,en_US.utf8
以便應用程式中的所有日誌訊息都以英語顯示。當我在命令前面加上 前綴時,這是有效的LANG=en_US.utf ./my-command
,現在 的每個輸出./my-command
都是英文。
localectl
似乎是使其永久化的正確工具,所以我嘗試了
[root@cnx65 ~]# localectl set-locale LANG=en_US.utf8
但現在運行時./my-command
,輸出仍然是德語。根據localectl
,我們en_US.utf8
設定:
[root@cnx65 ~]# localectl
System Locale: LANG=en_US.utf8
VC Keymap: de_alt_UTF-8
X11 Layout: us
其中locale
和$LANG
變數仍然顯示德語:
[root@cnx65 ~]# locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=
[root@cnx65 ~]# echo $LANG
de_DE.UTF-8
我還驗證了該語言環境是否存在localectl -a
:
[root@cnx65 ~]# locale -a | grep en_US.utf8
en_US.utf8
為什麼這不起作用?對我來說是無法追蹤的。正如您所看到的,所有命令都以 root 身份運行,因此不可能存在權限問題。
我不LANG
想像中只在全域設定環境變量,/etc/profiles
因為伺服器是由 Ansible 配置的,所以沒有互動式登入 shell。