【问题标题】:LC_MESSAGES has no effectLC_MESSAGES 没有效果
【发布时间】:2015-05-31 00:38:38
【问题描述】:

设置 LC_MESSAGES 将消息(在我的情况下)从俄罗斯更改为英文。

$ env | grep UTF
LC_MESSAGES=en_US.UTF-8
LANG=ru_UA.UTF-8

$ git status .
On branch master
Your branch is ahead of 'origin/master' by 11 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

一切似乎都很好,但是通过 ssh 连接到该主机。尽管有变量 LC_MESSAGES,但仍将消息发送回俄罗斯。看:

$ ssh user@localhost
$ env | grep UTF
LC_MESSAGES=en_US.UTF-8
LANG=ru_UA.UTF-8
$ git status .
В ветке master
Your branch is ahead of 'origin/master' by 11 commits.
  (use "git push" to publish your local commits)

нечего фиксировать, рабочая директория пуста

如何在俄罗斯离开界面但强制消息为英文?

$ unname -a Linux KES-PC 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

【问题讨论】:

  • locale 在这两种情况下的输出是什么?
  • @thatotherguy:区别在于 LANGUAGE=ru_UA:ru,在 ssh 中设置。它设置在 /etc/default/locale,但在第一种情况下(在我的正常会话中)谁取消了该环境? superuser.com/questions/392439/…
  • @thatotherguy:优先级不起作用LANGUAGE=en:ruLANGUAGE=ru:en 在这两种情况下都显示俄罗斯的消息。 LC_MESSAGES 设置为 en_US.UTF-8

标签: linux localization linux-mint


【解决方案1】:

正如@thatotherguy 所说,我必须使用locale 来查看发生了什么。

第一种情况:

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

在 ssh 之后

$ssh user@localhost
$locale
LANG=ru_UA.UTF-8
LANGUAGE=ru_UA:ru
LC_CTYPE="ru_UA.UTF-8"
LC_NUMERIC="ru_UA.UTF-8"
LC_TIME="ru_UA.UTF-8"
LC_COLLATE="ru_UA.UTF-8"
LC_MONETARY="ru_UA.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="ru_UA.UTF-8"
LC_NAME="ru_UA.UTF-8"
LC_ADDRESS="ru_UA.UTF-8"
LC_TELEPHONE="ru_UA.UTF-8"
LC_MEASUREMENT="ru_UA.UTF-8"
LC_IDENTIFICATION="ru_UA.UTF-8"
LC_ALL=

区别是LANGUAGE。谷歌搜索帮助。该变量设置在/etc/defaults/locale

$ cat /etc/default/locale
LANG="ru_UA.UTF-8"
LANGUAGE="ru_UA:ru"

所以我添加到我的.bashrc

export LANGUAGE=en

但现在我不明白:

  1. 我在 /etc/defautls/locale 设置了 LANGUAGE。为什么在第一种情况下它的值为空字符串?
  2. 为什么LANGUAGE 优先级不起作用?如果我设置 LANGUAGE=en:ruLANGUAGE=ru:en 在这两种情况下我都有俄语消息。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2018-05-21
    • 2018-07-28
    • 2018-05-15
    • 1970-01-01
    • 2011-10-01
    • 2020-10-19
    • 2014-04-19
    • 1970-01-01
    相关资源
    最近更新 更多