我怎样才能更改语言(但仅限于终端)?

我怎样才能更改语言(但仅限于终端)?

如何将终端语言更改为英语?

我熟悉使用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"

答案1

太长不看

因为您想将所有内容设置为英语(假设使用 GNU gettext 的程序应该使用希腊语作为后备语言):

export LANG=en_US.UTF-8
export LANGUAGE=en:el

或者如果某些LC_*变量已经在你的 shell 环境中定义并且你希望覆盖它们:

export LC_ALL=en_US.UTF-8
export LANGUAGE=en:el

为了使设置保留,请export在 末尾添加 s ~/.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

LANG定义每个非明确定义的LC_*变量要使用的值;因此,如果LC_*当前您的 shell 环境中未定义任何变量(这是默认行为,如果env | grep '^LC_'没有输出任何内容,则意味着情况确实如此)并且您希望将所有类别的值设置为en_US.UTF-8,只需导出LANG

export LANG=en_US.UTF-8

否则,您还必须覆盖每个先前定义的LC_*变量,或者(或者,更容易)只导出LC_ALL,它将覆盖任何先前定义的LC_*变量:

export LC_ALL=en_US.UTF-8

但是使用 GNU gettext 的程序将依赖于LANGUAGE而不是LANG/ LC_ALL(除非LANG/LC_ALL设置为C),并将根据其内容设置语言。LANGUAGE应该定义一个以冒号分隔的语言列表。如果列出的第一个以冒号分隔的语言的翻译不可用,程序将尝试使用列出的第二个以冒号分隔的语言等;例如,将英语设置为首选语言并将希腊语设置为后备语言:

export LANGUAGE=en:el

因此,在您的情况下,由于您想将所有内容设置为英语(假设使用 GNU gettext 的程序应该使用希腊语作为后备语言):

export LANG=en_US.UTF-8
export LANGUAGE=en:el

或者如果某些LC_*变量已经在你的 shell 环境中定义并且你希望覆盖它们:

export LC_ALL=en_US.UTF-8
export LANGUAGE=en:el

为了使设置保留,请export在 末尾添加 s ~/.bashrc

答案2

问题是:“如何将终端语言更改为英语?”。

LANG=C

或者

LANG=C.UTF-8

(世界已经变成了……UTF8 变得很普遍)变成

.bashrc

或者

/etc/bash.bashrc

重启后,它可以在终端上使用。不影响 GUI。

如果语言设置适用于远程(SSH)登录使用

.profile

或者

/etc/profile

就这样。其他地点也可能适用!

相关内容