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

Да. У меня просто была эта проблема. Я проверил свои источники в / etc / apt /, и единственное, что у меня есть, это не адреса ubuntu.com, это launchpad.com для Cinnamon и opera.com для браузера Opera. Я наконец-то сделал «apt-get upgrade --show-upgradeed» в терминале (старомодный путь!) И не имел проблем.

Просто небольшой редакторский комментарий - от дурацкой новой системы сервера имен до этого маленький глюк, Ubuntu на самом деле не показывает качество, которое он делал в прошлом, FWIW.

1
задан 1 November 2014 в 04:01

5 ответов

Функция 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
}

В целом я предлагаю для изменения всех трех переменных окружения LC_ALL, LANG, LANGUAGE, чтобы избежать неправильного использования некоторых программ.

Адаптация к вашему языку

Расширение кода на ваш родной язык довольно просто. Вы можете найти нужные значения, вызвав следующую команду

env |egrep -e 'LC_ALL|LANG'
11
ответ дан 25 May 2018 в 00:49
  • 1
    Сценарий нуждается в изменении для другого языка, чем немецкий (DE)? Я ищу решение, независимое от родного языка. – BuZZ-dEE 6 March 2013 в 05:48
  • 2
    @ BuZZ-dEE: вы можете (и, вероятно, должны) легко адаптировать это, выкинув case и указав вход для соответствия формату <lang>_<country>. Затем вы можете просто пройти его, предполагая UTF-8. Если вы действительно заинтересованы в опрятном решении, вероятно, вы должны проверить вход пользователя в locale -a, чтобы убедиться, что запрошенная локаль фактически установлена. – bitmask 6 March 2013 в 06:30
  • 3
    @ buzz-dee: см. обновленный ответ – H.-Dirk Schmitt 6 March 2013 в 22:27

Откройте терминал Ctrl + Alt + T и введите:

LANG=en_US.UTF-8 bash

или:

LC_ALL=C bash

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

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

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

или:

alias basheng='LC_ALL=C bash'

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

Источник:

Измените язык в экспортировании оболочки Linux (BaSH) LC_ALL = C Создание постоянных исполняемых псевдонимов
6
ответ дан 25 May 2018 в 00:49
  • 1
    Установка LANG - не , достаточная для случайного вывода. – bitmask 6 March 2013 в 01:12
  • 2
    @bitmask: LANG=en_US.UTF-8 && LC_ALL=en_US.UTF-8 && LANGUAGE=en_US.UTF-8 bash лучше? – BuZZ-dEE 6 March 2013 в 05:46
  • 3
    На самом деле это должно быть LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8 $SHELL. – bitmask 6 March 2013 в 06:27
  • 4
    Только LC_ALL = C bash работают для меня. – liquide 27 May 2016 в 13:00

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

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 (так что не Юникод, латинский-1 и т. д.).

См. locale для более подробного обзора локалей.

5
ответ дан 25 May 2018 в 00:49
  • 1
    Не использовать LANGUAGE? Я не знаю, на какой ОС вы находитесь, но на Ubuntu LANGUAGE используется по умолчанию все время через установщик и различные графические интерфейсы. Какие ошибки есть, кстати? Я также прочитал ответ, который вы связали с , и даже если он содержит полезную общую информацию, рекомендация просто не является хорошим советом на рабочем столе Ubuntu. – Gunnar Hjalmarsson 2 November 2014 в 20:04
  • 2
    @GunnarHjalmarsson Основная проблема с LANGUAGE заключается в том, что она имеет приоритет над LC_ALL, что вызывает ошибки, потому что программы устанавливают LC_ALL для получения прогнозируемого результата, а затем путаются, потому что они не получают ожидаемого результата. – Gilles 3 November 2014 в 23:24
  • 3
    Ну, графические интерфейсы Ubuntu устанавливают как LANG, так и LANGUAGE последовательно (и LC_MESSAGES наследуется от LANG), что должно предотвратить такое замешательство. Причина, по которой LANGUAGE установлен, заключается в том, что в Language Support есть интерфейс для установки списка приоритетов. – Gunnar Hjalmarsson 3 November 2014 в 23:39
  • 4
    @GunnarHjalmarsson Я знаю. Установка LANGUAGE - плохая идея, тем не менее, потому что преимущества очень тонкие, тогда как ошибки могут быть раздражающими и трудно найти. Вы правы, хотя я должен упомянуть об отключении LANGUAGE. – Gilles 3 November 2014 в 23:46
  • 5
    Ответы здесь не являются подходящим местом для обсуждения проблем дизайна. Такие обсуждения лучше проводить, например, убунту-разви-обсуждение . Чтобы быть полезными для пользователей, я действительно думаю, что ответ должен основываться на текущем проекте, считаете ли вы его оптимальным или нет. И обратите внимание, что «некоторые версии» все поддерживаемые версии рабочего стола Ubuntu и производных, возможно, за исключением Kubuntu. – Gunnar Hjalmarsson 4 November 2014 в 01:25

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

env LANGUAGE=en gnome-terminal
0
ответ дан 25 May 2018 в 00:49

в вашем ~/.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

0
ответ дан 25 May 2018 в 00:49
  • 1
    Я не знаю, почему этот ответ получил вниз. Да, он может использовать еще несколько объяснений, но, в отличие от принятого ответа, он показывает, как сделать его постоянным и более конкретным. – Xerus 7 May 2018 в 17:56

Другие вопросы по тегам:

Похожие вопросы: