Переключить язык вывода команд с родного языка на английский
Как я могу переключить язык вывода команд с моего родного языка на английский, чтобы я мог опубликовать свой вопрос 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, ни один из приведенных ниже вариантов не имеет никакого эффекта.
Связанная ошибка с изменением языка / настройками переключения в 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
- Нажмите на значок шестеренки слева (настройки системы на панели Unity)
- Нажмите на языковую поддержку
- Выберите региональные форматы
- Установите "Отображать числа, даты и сумму валюты..." на английском языке.
- Выйдите из сеанса и войдите снова (обязательно!)
Готово.
Чтобы навсегда изменить язык терминала на английский, используйте:
echo 'export LANG=C' >> ~/.bashrc && exec "$BASH"