将命令输出语言从母语切换为英语

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

终端的bash函数

这是我在 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_ALLLANGLANGUAGE以避免某些程序的misbehaviours。

适应您的语言

将代码扩展到您的母语非常简单。您可以通过调用以下命令找到所需的值

env |egrep -e 'LC_ALL|LANG'
Run Code Online (Sandbox Code Playgroud)


BuZ*_*dEE 9

打开终端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

来源:

  • 实际上,那应该是`LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL`。 (2认同)

Gil*_*il' 5

这是通过区域设置配置的,可以通过环境变量设置。有四层变量;设置的第一个优先:

  • 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 等)。

请参阅我应该将我的语言环境设置为什么以及这样做的含义是什么?有关语言环境的更详细概述。