Переключить язык вывода команд с родного языка на английский

Как я могу переключить язык вывода команд с моего родного языка на английский, чтобы я мог опубликовать свой вопрос Ask Ubuntu с выводом команды на английском языке (сообщения об ошибках)?

9 ответов

Решение

export LC_ALL=C достаточно. Все последующие команды выводятся на английском языке.

Больше информации: что делает "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

или:

LC_ALL=C bash

Теперь вывод терминала на английском языке. Вы можете проверить это с locale,

Можно сделать команду, чтобы сделать это с постояннымalias, Открой .bashrc файл с вашим предпочтительным редактором и поместите туда следующий код:

alias basheng='LANG=en_US.UTF-8 bash'

или:

alias basheng='LC_ALL=C bash'

Перезапустите оболочку Bash. Теперь у вас есть команда basheng, Введите его в Bash, чтобы получить английскую оболочку Bash. Чтобы оставить английский тип оболочки exit,

Источник:

Это настраивается с помощью настроек локали, которые могут быть установлены с помощью переменной среды. Есть четыре слоя переменных; первый из них имеет приоритет:

  • LANGUAGE - не используйте это, это редко полезно и может вызвать ошибки. К сожалению, некоторые версии Ubuntu устанавливают его, поэтому вам может потребоваться отключить его.
  • LC_ALL - переопределяет специфичные для категории настройки, предназначенные главным образом для использования программами, которые хотят работать в локали по умолчанию. Не предназначен для использования в качестве глобальных настроек.
  • Специфичные для категории переменные, начинающиеся с LC_: LC_CTYPE, LC_MESSAGES, LC_TIME
  • LANG - устанавливает локаль по умолчанию для всех категорий, предназначенную для использования в глобальных пользовательских настройках.

Вызывается "простая" локаль со всеми непереведенными сообщениями, форматами времени и чисел по умолчанию, 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 и т. д.).

Посмотрите, что я должен установить мой язык и каковы последствия этого? для более подробного обзора локалей.

В вашем ~/.bashrc

unset LC_ALL
export LC_MESSAGES=C

затем

source ~/.bashrc

Проверь это

$ locale
LANG=pl_PL.utf8
LANGUAGE=
LC_CTYPE="pl_PL.utf8"
LC_NUMERIC="pl_PL.utf8"
LC_TIME="pl_PL.utf8"
LC_COLLATE="pl_PL.utf8"
LC_MONETARY="pl_PL.utf8"
LC_MESSAGES=C
LC_PAPER="pl_PL.utf8"
LC_NAME="pl_PL.utf8"
LC_ADDRESS="pl_PL.utf8"
LC_TELEPHONE="pl_PL.utf8"
LC_MEASUREMENT="pl_PL.utf8"
LC_IDENTIFICATION="pl_PL.utf8"
LC_ALL=

Почему сначала отключить?

LC_ALL Переопределяет отдельные настройки LC_*: если установлен LC_ALL, ни один из приведенных ниже вариантов не имеет никакого эффекта.

https://help.ubuntu.com/community/Locale

Связанная ошибка с изменением языка / настройками переключения в Fedora(30), например: с английского на родной на английский

Есть переменная env, которая не меняется обратно на EN, а именно, например, с болгарского (bg). Пример:

# LANGUAGE=en_GB:bg

должен измениться на:

# LANGUAGE=en_GB:en

Решение (удалите # и выполните):

# export LANGUAGE=en_GB:en

Самый простой способ - открыть терминал, нажав Alt+F2 и выполнив эту команду:

env LANGUAGE=en gnome-terminal
  1. Нажмите на значок шестеренки слева (настройки системы на панели Unity)
  2. Нажмите на языковую поддержку
  3. Выберите региональные форматы
  4. Установите "Отображать числа, даты и сумму валюты..." на английском языке.
  5. Выйдите из сеанса и войдите снова (обязательно!)

Готово.

Чтобы навсегда изменить язык терминала на английский, используйте:

      echo 'export LANG=C' >> ~/.bashrc && exec "$BASH"
Другие вопросы по тегам