将 Konsole 的语言输出更改为英语

将 Konsole 的语言输出更改为英语

我正在使用 Kubuntu 18.04。我的键盘布局这些问题已经解决,但留下了一些问题。更具体地说,我的系统有些方面存在一些语言问题。例如,在 Konsole 中,我收到的所有消息都是希腊语。我想用英语收到它们。例如,这条消息说(希腊语):

找不到命令

在此处输入图片描述

我尝试改变语言,但我使用的方法似乎没有什么效果。

我试过:

export LANG=C

在 Konsole 本身以及~/.bashrc文件,据我所知,该文件将默认语言更改为美国英语(对我来说已经足够好了)。出于某种原因,我的 Konsole 将希腊语视为我的默认语言。

我尝试明确设置:

export LANG=en_US.UTF-8

也没有太大变化!信息都是希腊语。

改变LC_ALL似乎是唯一能带来改变的事情(尽管不是我们所希望的):

export LC_ALL=C
$ fdsfdfd

邮件列表: \u03b7 \u03b5\u03bd\u03c4\u03bf\u03bb\u03ae \u03b4\u03b5 \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5

这将以 Unicode(?) 格式返回消息。

一些有趣的事实

  1. 之前它们是西班牙语(我之前已经添加西班牙语作为第三种语言)
  2. 其他 tty 中的控制台正确显示英文消息。

我检查过类似的问题这里或者这里这对我来说不起作用(如前所述)。

知道如何解决这个问题吗?

编辑:
正如@danzel所问的,输出locale是:

$locale
LANG=C
LANGUAGE=en_US:es:el
LC_CTYPE="C"
LC_NUMERIC=el_GR.UTF-8
LC_TIME=el_GR.UTF-8
LC_COLLATE="C"
LC_MONETARY=el_GR.UTF-8
LC_MESSAGES="C"
LC_PAPER=el_GR.UTF-8
LC_NAME=el_GR.UTF-8
LC_ADDRESS=el_GR.UTF-8
LC_TELEPHONE=el_GR.UTF-8
LC_MEASUREMENT=el_GR.UTF-8
LC_IDENTIFICATION=el_GR.UTF-8
LC_ALL=

此外,正如@Gunnar Hjalmarsson 建议的那样,改变两者$LANG似乎$LANGUAGE最终解决了问题,尽管如此GNU 文档建议只需改变在消息打印中优先的语言就足够了。

答案1

好吧,我的问题的答案是惊险的。正如在GNU 文档有 3 个环境变量与此问题相关:

  • 语言
  • 语言
  • LC_全部

在这 3 个中,最后一个通常不应设置。文档指出:

在消息处理方面,GNU gettext 优先使用 LANGUAGE 而不是 LC_ALL 和 LANG,但是您仍然需要将 LANG(或 LC_ALL)设置为主要语言;这是系统库的其他部分所需要的。

这意味着虽然 LANGUAGE 用于确定显示消息的语言,但只有当其中一个设置为不同于默认值(C)时,它才会被使用。

最后一条注释说得更清楚:

注意:如果语言环境设置为“C”,则变量 LANGUAGE 将被忽略。换句话说,您必须先通过将 LANG(或 LC_ALL)设置为除“C”之外的值来启用本地化,然后才能通过 LANGUAGE 变量使用语言优先级列表。

因此,在我的例子中,我必须将 LANG 和 LANGUAGE 都设置为语言环境。无论 LANG 的值如何,选择都将是 LANGUAGE 变量。

相关内容