OJe*_*eik 6 command-line language locale
如何将终端的语言更改为英语?
我熟悉使用vi.
如果终端语言由 控制etc/default/locale,我应该在那里更改什么?
LANG="el_GR.UTF-8"
LANGUAGE="el:en"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_IDENTIFICATION="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"
Run Code Online (Sandbox Code Playgroud)
因为您想将所有内容都设置为英语(假设使用 GNU gettext 的程序应该使用希腊语作为后备语言):
export LANG=en_US.UTF-8
export LANGUAGE=en:el
Run Code Online (Sandbox Code Playgroud)
或者,如果某些LC_*变量已在您的 shell 环境中定义并且您希望覆盖它们:
export LC_ALL=en_US.UTF-8
export LANGUAGE=en:el
Run Code Online (Sandbox Code Playgroud)
要使设置保持不变,请export在~/.bashrc.
更改/etc/default/locale将影响整个系统的区域设置,从而影响所有未设置特定区域设置的用户的区域设置,因此如果您只想更改在用户终端/控制台中运行的命令的语言,则不应更改它。
可以通过导出以下环境变量来更改在用户终端/控制台中运行的命令的语言环境:
LANG
LANGUAGE
LC_ADDRESS
LC_ALL
LC_COLLATE
LC_CTYPE
LC_IDENTIFICATION
LC_MEASUREMENT
LC_MESSAGES
LC_MONETARY
LC_NAME
LC_NUMERIC
LC_PAPER
LC_TELEPHONE
LC_TIME
Run Code Online (Sandbox Code Playgroud)
LANG定义用于每个非显式定义LC_*变量的值;因此,如果LC_*当前在您的 shell 环境中没有定义任何变量(这是默认行为,如果env | grep '^LC_'不输出任何内容,则表示就是这种情况)并且您希望将所有类别的值设置为en_US.UTF-8,只需导出LANG:
export LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
否则,您还必须覆盖每个先前定义的LC_*变量,或者(或者,更容易)只LC_ALL覆盖export ,它覆盖任何先前定义的LC_*变量:
export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
但是,使用 GNU gettext 的程序将依赖于LANGUAGE而不是LANG/ LC_ALL(除非LANG/LC_ALL设置为C),并且将根据其内容设置语言。LANGUAGE应该定义以冒号分隔的语言列表。如果列出的第一个冒号分隔语言的翻译不可用,程序将尝试使用列出的第二个冒号分隔语言等;例如,将英语设置为首选语言,将希腊语设置为备用语言:
export LANGUAGE=en:el
Run Code Online (Sandbox Code Playgroud)
因此,在您的情况下,由于您想将所有内容都设置为英语(假设使用 GNU gettext 的程序应该使用希腊语作为后备语言):
export LANG=en_US.UTF-8
export LANGUAGE=en:el
Run Code Online (Sandbox Code Playgroud)
或者,如果某些LC_*变量已在您的 shell 环境中定义并且您希望覆盖它们:
export LC_ALL=en_US.UTF-8
export LANGUAGE=en:el
Run Code Online (Sandbox Code Playgroud)
要使设置保持不变,请export在~/.bashrc.
| 归档时间: |
|
| 查看次数: |
10611 次 |
| 最近记录: |