Как получить консольные сообщения на английском языке?

13

Я француз и использую свою систему Debian на французском.

Тем не менее, я хотел бы иметь сообщения об ошибках в терминале на английском языке. Это позволяет мне размещать их на англоязычных сайтах.

Как я могу изменить свой язык для этого? Я точно не хочу, чтобы вся моя система была на английском.

имп
источник
1
export LANGUAGE=English
Стефан Шазелас
@StephaneChazelas Пожалуйста, уточните точный эффект и влияние вашей команды (возможно, в ответе больше, чем в комментарии).
апреля
см. также Что делает «LC_ALL = C»?
Стефан Шазелас

Ответы:

10

Вы должны изменить переменную LANG в текущей оболочке.

Положил

export LANG=en_US.UTF-8

в rc-файле вашей оболочки (для bash это так ~/.bashrc) и перезапустите сеанс терминала (или просто отправьте rc-файл еще раз с помощью source ~/.bashrcили просто перезапустите bash с помощью exec bash)

Обратите внимание, что вы должны сгенерировать эту локаль раньше.

Также вы можете использовать export LANG=C.

Также есть другие переменные LANG (от man bash):

   LANG   Used to determine the  locale  category  for  any  category  not
          specifically selected with a variable starting with LC_.
   LC_ALL This  variable  overrides  the  value  of LANG and any other LC_
          variable specifying a locale category.
   LC_COLLATE
          This variable determines the collation order used  when  sorting
          the  results  of pathname expansion, and determines the behavior
          of  range  expressions,  equivalence  classes,   and   collating
          sequences within pathname expansion and pattern matching.
   LC_CTYPE
          This  variable  determines  the interpretation of characters and
          the behavior of character classes within pathname expansion  and
          pattern matching.
   LC_MESSAGES
          This  variable  determines  the locale used to translate double-
          quoted strings preceded by a $.
   LC_NUMERIC
          This variable determines the locale  category  used  for  number
          formatting.
порыв
источник
1
Использовать LANGпеременную окружения только для установки (предпочтительного) языка программ, запускаемых в консоли, неправильно. Для этого LC_MESSAGESи предназначены LANGUAGEпеременные среды. Смотрите переменную локали 'LANGUAGE' - как установить английский язык как основной? Ошибка в gettext? ,
Петр Доброгост
2
Добавление комментария для предупреждения читателя о том, что даже если принят ответ, это не правильно. LC_ALL=Cследует использовать вместо этого unset LC_ALLдля сброса. См. Unix.stackexchange.com/q/87745/168003
el-teedee
9

Вы можете вызвать приложение со следующим синтаксисом:

Например, вы хотите английские man-страницы (только для одной команды):

user@host:~# LC_ALL=C man ls

Или вы столкнулись с ошибкой (моя система на немецком языке):

user@host:~$ ls -la /root/
ls: Öffnen von Verzeichnis /root/ nicht möglich: Keine Berechtigung

user@host:~$ LC_ALL=C ls -l /root/
ls: cannot open directory /root/: Permission denied
хаос
источник
Полезно (но я принял другой ответ, потому что мой вопрос был о постоянном выполнении этого).
13:30
2
больше «C», чем «c», «c» не работает на моем Debian 8.
Tristan
Я предложил изменить LC_ALL=Cвместо того, LC_ALL=cчто мне тоже не bash: warning: setlocale: LC_ALL: cannot change locale (c)
удалось
-3

Попробуйте сослаться на это: 1) https://wiki.debian.org/ChangeLanguage

Короче говоря, вы хотите установить свой LOCALE (через LANG), предпочтительно в вашем .bashrc.

export LANG=en_US.UTF-8
К. Келли
источник
хорошо, но я не хочу менять язык моей системы. Я просто хочу получить сообщение об ошибке на английском языке. Смена языка системы имеет множество последствий.
апреля
Я полагаю, что размещение его в вашем .bashrc повлияет только на вашу оболочку, а также на любые команды, которые читают .bashrc. Если вы опустите «экспорт», он не будет распространяться на команды, которые вы запускаете из этой оболочки.
К. Келли
@ckelly Это меняет кучу вещей помимо языка сообщений об ошибках. Например, сортировка заказов, форматирование чисел, ...
derobert
@ppr хорошо, но я не хочу менять язык моей системы. Почему тогда вы приняли ответ, который дает такое же «решение»?
Петр Доброгост