当前位置: 首页>>技术问答>>正文


将命令输出语言从本地语言切换到英语

, ,

问题描述

如何将命令输出语言从我的母语切换为英语,因此我可以使用英语命令输出(错误消息)发布我的Ask Ubuntu问题?

最佳解决思路

export LC_ALL=C就足够了。所有后续命令输出均为英文。

更多信息:What does “LC_ALL=C” do?

如果要还原为本机语言,请取消设置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_ALLLANGLANGUAGE以避免某些程序的行为不当。

适应您的语言

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

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_CTYPELC_MESSAGESLC_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?

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1107.html,未经允许,请勿转载。