问题描述
如何将命令输出语言从我的母语切换为英语,因此我可以使用英语命令输出(错误消息)发布我的Ask Ubuntu问题?
最佳解决思路
export LC_ALL=C
就足够了。所有后续命令输出均为英文。
如果要还原为本机语言,请取消设置LC_ALL
变量:
unset LC_ALL
次佳解决思路
终端的bash功能
这是我的bash函数,用于在DE和EN语言环境之间切换。
您可以使用首选语言扩展此代码。要使用它,请将其放入~/.bashrc
(或~/.bash_profile
) –
使用_configure_locale EN
调用它以切换到英语。
function _configure_locale() { # [profile]
local profile=${1:-EN}
case ${profile} in
DE|DE_DE|de_DE)
LC_ALL="de_DE.UTF-8"
LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_US:en"
;;
EN|EN_US|en|en_US)
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
;;
*)
echo "ALERT" "${FUNCNAME}: unknown profile '${profile}'"
;;
esac
LC_PAPER="de_DE.UTF-8"; # independent from locale
LESSCHARSET="utf-8"; # independent from locale
MM_CHARSET="utf-8" # independent from locale
echo "locale settings" "${LANG}";
export LC_ALL LANG LANGUAGE LC_PAPER LESSCHARSET MM_CHARSET
}
一般情况下,我建议更改所有3个环境变量LC_ALL
,LANG
,LANGUAGE
以避免某些程序的行为不当。
适应您的语言
将代码扩展到您的母语非常简单。您可以通过调用以下命令找到所需的值
env |egrep -e 'LC_ALL|LANG'
第三种解决思路
打开终端Ctrl
+ Alt
+ T
并输入:
LANG=en_US.UTF-8 bash
or:
LC_ALL=C bash
现在终端输出是英语。您可以使用locale
进行检查。
可以使用永久alias
命令执行此操作。使用首选编辑器打开.bashrc
文件,并在其中输入以下代码:
alias basheng='LANG=en_US.UTF-8 bash'
or:
alias basheng='LC_ALL=C bash'
重启Bash shell。现在您有了命令basheng
。在Bash中键入它以获取英语Bash shell。离开英文shell类型exit
。
资源:
第四种思路
这是通过locale设置配置的,可以通过环境变量进行设置。有四层变量;设置的第一个优先:
-
LANGUAGE
– 不要使用它,它很少有用,可能会导致错误。不幸的是,某些版本的Ubuntu设置了它,所以你可能需要取消它。 -
LC_ALL
– 覆盖category-specific设置,主要用于想要在默认语言环境中运行的程序。不打算用作全局设置。 -
以
LC_
开头的Category-specific变量:LC_CTYPE
,LC_MESSAGES
,LC_TIME
,…. -
LANG
– 设置所有类别的默认语言环境,用于全局用户设置。
“plain”语言环境包含所有未翻译的消息,默认的时间和数字格式,ASCII作为字符集等,称为C
。此区域设置存在于每个系统上。
因此,要运行带有英文消息的程序,请运行
unset LANGUAGE; LC_MESSAGES=C myprogram --option
要么
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
要运行已关闭所有本地化的程序,请运行
env -u LANGUAGE LC_ALL=C myprogram --option
但请注意,这会将字符编码切换为ASCII(因此没有Unicode,latin-1等)。
有关语言环境的更详细概述,请参阅What should I set my locale to and what are the implications of doing so?。