如何用英语获得控制台消息?


13

我是法国人,在法语中使用我的Debian系统。

但是,我想在英文终端中显示错误消息。它使我可以将它们发布在英语网站上。

我该如何更改语言环境?我精确地说,我不希望我的系统全部使用英语。


1
export LANGUAGE=English
斯特凡Chazelas

@StephaneChazelas请精确说明命令的确切效果和影响(答案可能多于评论)。
2013年

Answers:


10

您必须在当前shell中更改LANG变量。

export LANG=en_US.UTF-8

在您的shell rc文件中(对于bash而言~/.bashrc),然后重新启动终端会话(或者仅使用一次再次提供rc文件,source ~/.bashrc甚至使用来重新启动bash exec bash

请注意,您必须先生成此语言环境。

您也可以使用export LANG=C

另外还有其他LANG变量(来自man bash):

   LANG   Used to determine the  locale  category  for  any  category  not
          specifically selected with a variable starting with LC_.
   LC_ALL This  variable  overrides  the  value  of LANG and any other LC_
          variable specifying a locale category.
   LC_COLLATE
          This variable determines the collation order used  when  sorting
          the  results  of pathname expansion, and determines the behavior
          of  range  expressions,  equivalence  classes,   and   collating
          sequences within pathname expansion and pattern matching.
   LC_CTYPE
          This  variable  determines  the interpretation of characters and
          the behavior of character classes within pathname expansion  and
          pattern matching.
   LC_MESSAGES
          This  variable  determines  the locale used to translate double-
          quoted strings preceded by a $.
   LC_NUMERIC
          This variable determines the locale  category  used  for  number
          formatting.

1
仅将LANG环境变量用于设置(首选)控制台中运行的程序的语言是错误的。这就是LC_MESSAGESLANGUAGE环境变量都是为了。请参阅“ LANGUAGE”语言环境变量-如何将英语设置为主要语言?gettext中的错误?
Piotr Dobrogost

2
添加评论以警告读者,即使接受了答案,也不正确。LC_ALL=C应该用来代替unset LC_ALL重置。参见unix.stackexchange.com/q/87745/168003
el-teedee '18年

9

您可以使用以下语法调用应用程序:

例如,您需要英文手册(仅用于单个命令):

user@host:~# LC_ALL=C man ls

或您遇到错误(我的系统是德语):

user@host:~$ ls -la /root/
ls: Öffnen von Verzeichnis /root/ nicht möglich: Keine Berechtigung

user@host:~$ LC_ALL=C ls -l /root/
ls: cannot open directory /root/: Permission denied

有用(但我接受了另一个答案,因为我的问题是关于永久执行此操作)。
2013年

2
在我的Debian 8上,“ c”比“ c”多,“ c”不起作用
Tristan

我建议您对其进行编辑,LC_ALL=C而不是LC_ALL=c通过消息进行编辑bash: warning: setlocale: LC_ALL: cannot change locale (c)
el-teedee 18/09/18

-3

尝试参考此内容:1) https://wiki.debian.org/ChangeLanguage

简而言之,您想设置LOCALE(通过LANG),最好在.bashrc中设置。

export LANG=en_US.UTF-8

好的,但是我不想更改系统语言。我只想用英语显示一些错误消息。更改系统语言会带来很多后果。
2013年

我相信将其放入您的.bashrc文件只会影响您的shell,以及任何读取.bashrc的命令。如果省略“导出”,它将不会传播到从该Shell启动的命令。
C. Kelly

@ckelly除了错误消息语言之外,这还改变了很多其他东西。例如,排序顺序,数字格式,...
derobert 2013年

@ppr 好的,但是我不想更改我的系统语言 -为什么然后您接受给出相同“解决方案”的答案?
Piotr Dobrogost
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.