BuZ*_*dEE 99 command-line locale
如何将命令输出语言从我的母语切换到英语,以便我可以使用英语命令输出(错误消息)发布我的 Ask Ubuntu 问题?
Eri*_*lho 93
export LC_ALL=C足够。所有后续命令输出都将使用英语。
更多信息:“LC_ALL=C”有什么作用?
如果要恢复为母语,请取消设置LC_ALL变量:
unset LC_ALL
Run Code Online (Sandbox Code Playgroud)
H.-*_*itt 14
这是我在 DE 和 EN 语言环境之间切换的 bash 函数。
您可以使用首选语言扩展此代码。要使用它,请将其放入您的~/.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
}
Run Code Online (Sandbox Code Playgroud)
总的来说,我建议改变所有3个环境变量LC_ALL,LANG,LANGUAGE以避免某些程序的misbehaviours。
将代码扩展到您的母语非常简单。您可以通过调用以下命令找到所需的值
env |egrep -e 'LC_ALL|LANG'
Run Code Online (Sandbox Code Playgroud)
打开终端Ctrl+ Alt+T和类型:
LANG=en_US.UTF-8 bash
Run Code Online (Sandbox Code Playgroud)
或:
LC_ALL=C bash
Run Code Online (Sandbox Code Playgroud)
现在终端输出是英文的。您可以使用locale.
可以使用永久alias. .bashrc使用您喜欢的编辑器打开文件并将以下代码放入其中:
alias basheng='LANG=en_US.UTF-8 bash'
Run Code Online (Sandbox Code Playgroud)
或:
alias basheng='LC_ALL=C bash'
Run Code Online (Sandbox Code Playgroud)
重新启动 Bash shell。现在你有了命令basheng。在 Bash 中输入它以获得英文 Bash shell。离开英文shell类型exit。
来源:
这是通过区域设置配置的,可以通过环境变量设置。有四层变量;设置的第一个优先:
LANGUAGE- 不要使用它,它很少有用并且会导致错误。不幸的是,某些版本的 Ubuntu 设置了它,因此您可能需要取消设置。LC_ALL— 覆盖特定于类别的设置,主要供想要在默认语言环境中运行的程序使用。不打算用作全局设置。LC_: LC_CTYPE, LC_MESSAGES, LC_TIME, ...开头的特定于类别的变量。LANG — 为所有类别设置默认语言环境,旨在用于全局用户设置。“普通”语言环境,包括所有未翻译的消息、默认时间和数字格式、ASCII 作为字符集等,称为C. 每个系统上都存在此语言环境。
因此,要运行带有英文消息的程序,请运行
unset LANGUAGE; LC_MESSAGES=C myprogram --option
Run Code Online (Sandbox Code Playgroud)
或者
unset LANGUAGE
export LC_MESSAGES=C
myprogram --option
myotherprogram
Run Code Online (Sandbox Code Playgroud)
要在关闭所有本地化的情况下运行程序,请运行
env -u LANGUAGE LC_ALL=C myprogram --option
Run Code Online (Sandbox Code Playgroud)
但请注意,这会将字符编码切换为 ASCII(因此没有 Unicode、latin-1 等)。
请参阅我应该将我的语言环境设置为什么以及这样做的含义是什么?有关语言环境的更详细概述。
| 归档时间: |
|
| 查看次数: |
84495 次 |
| 最近记录: |