的因素有兩個:
您可使用帶有外殼
- 內置回波(並沒有被告知,要更改的語言環境的外殼)
LANG
不是檢查第一個環境變量。據locale(7)
,LC_ALL
和LC_CTYPE
將首先檢查:
If the second argument to setlocale(3) is an empty string, "", for
the default locale, it is determined using the following steps:
1. If there is a non-null environment variable LC_ALL, the value
of LC_ALL is used.
2. If an environment variable with the same name as one of the
categories above exists and is non-null, its value is used for
that category.
3. If there is a non-null environment variable LANG, the value of
LANG is used.
對於後者,看看從locale
命令,它會列出所有將要使用的環境變量的輸出:
$ export LANG=ru_RU.KOI8-R
$ locale
LANG=ru_RU.KOI8-R
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
只是改變LANG
不應CH憤怒的其他變量,但改變LC_ALL
一般這樣做。
$ export LC_ALL=ru_RU.KOI8-R
$ locale
LANG=ru_RU.KOI8-R
LANGUAGE=
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=ru_RU.KOI8-R
發表了一個適用於'bash' shell的答案,其登錄shell是'urxvt'使用? – Inian
通過'urxvt'讀取哪些啓動文件,在那裏添加包含更改語言環境的行。它應該反映它爲您的所有後續會話。 – Inian
可能它使用bash。 '在那裏添加更改語言環境的行 - - 問題不在於更改語言環境,而是在CURRENT會話中更改它。我知道我可以把這行放在.bash_profile或.bashrc - 但這不是我想要的。 –