Jak wyświetlać komunikaty konsoli w języku angielskim?

13

Jestem Francuzem i używam mojego systemu Debian w języku francuskim.

Chciałbym jednak wyświetlać komunikaty o błędach w terminalu w języku angielskim. Pozwala mi to publikować je na stronach anglojęzycznych.

Jak mogę zmienić moje ustawienia regionalne, aby to zrobić? Dokładnie, nie chcę mieć całego mojego systemu w języku angielskim.

ppr
źródło
1
export LANGUAGE=English
Stéphane Chazelas,
@StephaneChazelas Proszę dokładnie określić dokładny efekt i wpływ polecenia (być może w odpowiedzi bardziej niż w komentarzu).
ppr
zobacz także Co robi „LC_ALL = C”?
Stéphane Chazelas,

Odpowiedzi:

10

Musisz zmienić zmienną LANG w bieżącej powłoce.

Położyć

export LANG=en_US.UTF-8

w pliku powłoki rc powłoki (dla bash to jest ~/.bashrc) i zrestartuj sesję terminalową (lub po prostu jeszcze raz zbierz plik rc za pomocą source ~/.bashrclub nawet po prostu uruchom bash ponownie exec bash)

Pamiętaj, że musisz wcześniej wygenerować te ustawienia narodowe.

Możesz także użyć export LANG=C.

Istnieją również inne zmienne LANG (z 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.
wysypka
źródło
1
Używanie LANGzmiennej środowiskowej tylko do ustawiania (preferowanego) języka programów uruchamianych w konsoli jest nieprawidłowe. To co LC_MESSAGESi LANGUAGEzmienne środowiskowe są przeznaczone dla. Zobacz Zmienna regionalna „JĘZYK” - jak ustawić angielski jako język podstawowy? Błąd w gettext? .
Piotr Dobrogost
2
Dodanie komentarza w celu ostrzeżenia czytelnika, że ​​nawet jeśli zostanie zaakceptowana odpowiedź, nie jest to poprawne. LC_ALL=Cnależy użyć zamiast tego z, unset LC_ALLaby zresetować. Zobacz unix.stackexchange.com/q/87745/168003
el-teedee
9

Możesz wywołać aplikację o następującej składni:

Na przykład chcesz angielskich stron podręcznika (dla jednego polecenia):

user@host:~# LC_ALL=C man ls

Lub napotkasz błąd (mój system jest w języku niemieckim):

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
chaos
źródło
Przydatne (ale zaakceptowałem inną odpowiedź, ponieważ moje pytanie dotyczyło tego na stałe).
ppr
2
więcej „C” niż „c”, „c” nie działa na moim Debianie 8.
Tristan
Zasugerowałem edycję, dla której LC_ALL=Czamiast LC_ALL=cmnie też nie powiodła się wiadomośćbash: warning: setlocale: LC_ALL: cannot change locale (c)
el-teedee
-3

Spróbuj nawiązać do tego: 1) https://wiki.debian.org/ChangeLanguage

Krótko mówiąc, chcesz ustawić LOCALE (przez LANG), najlepiej w .bashrc.

export LANG=en_US.UTF-8
C. Kelly
źródło
ok, ale nie chcę zmieniać języka systemu. Chcę tylko otrzymać komunikat o błędzie w języku angielskim. Zmiana języka systemu ma wiele konsekwencji.
ppr
Wierzę, że umieszczenie go w twoim .bashrc wpłynie tylko na twoją powłokę, a także na wszelkie polecenia, które czytają .bashrc. Jeśli pominiesz „eksport”, nie będzie on propagowany do poleceń uruchamianych z tej powłoki.
C. Kelly,
@ckelly To zmienia wiele rzeczy oprócz języka komunikatów o błędach. Na przykład, sortuj zamówienia, formatowanie liczb, ...
derobert
@ppr ok, ale nie chcę zmieniać języka systemu - dlaczego więc zaakceptowałeś odpowiedź, która daje to samo „rozwiązanie”?
Piotr Dobrogost