Como ter mensagens de console em inglês?

13

Eu sou francês e uso meu sistema Debian em francês.

No entanto, gostaria de receber mensagens de erro no terminal em inglês. Permite-me publicá-las em sites que falam inglês.

Como posso alterar minha localidade para fazer isso? Preciso que não queira ter todo o meu sistema em inglês.

ppr
fonte
1
export LANGUAGE=English
Stéphane Chazelas
@StephaneChazelas Precise o efeito e o impacto precisos do seu comando (talvez em uma resposta mais do que no comentário).
Ppr
veja também O que "LC_ALL = C" faz?
Stéphane Chazelas

Respostas:

10

Você precisa alterar a variável LANG no shell atual.

Colocar

export LANG=en_US.UTF-8

no seu arquivo shell rc (para o bash ~/.bashrc) e reinicie a sessão do terminal (ou apenas forneça o arquivo rc mais uma vez source ~/.bashrcou apenas reinicie o bash exec bash)

Observe que você precisa gerar esse código do idioma antes.

Também você pode usar export LANG=C.

Também existem outras variáveis ​​LANG (do 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.
pressa
fonte
1
O uso de LANGvariável de ambiente apenas para definir o idioma (preferencial) dos programas executados no console está errado. Isso é o que LC_MESSAGESe LANGUAGEvariáveis de ambiente se destinam. Consulte A variável de localidade 'LANGUAGE' - como definir o inglês como idioma principal? Um erro no gettext? .
Piotr Dobrogost
2
Adicionando um comentário para avisar o leitor que, mesmo que ele seja aceito, isso não está correto. LC_ALL=Cem vez disso, deve ser usado com unset LC_ALLpara redefinir. Veja unix.stackexchange.com/q/87745/168003
el-teedee
9

Você pode chamar um aplicativo com a seguinte sintaxe:

Por exemplo, você deseja as páginas de manual em inglês (apenas para um único comando):

user@host:~# LC_ALL=C man ls

Ou você encontra um erro (meu sistema está em alemão):

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
caos
fonte
Útil (mas aceitei outra resposta porque minha pergunta era sobre fazer isso permanentemente).
ppr
2
mais "C" do que "c", "c" não funciona no meu Debian 8.
Tristan
Sugeri uma edição para LC_ALL=C, em vez de LC_ALL=cque não demais para mim com a mensagembash: warning: setlocale: LC_ALL: cannot change locale (c)
el-Teedee
-3

Tente referenciar isso: 1) https://wiki.debian.org/ChangeLanguage

Em resumo, você deseja definir seu LOCALE (via LANG), preferencialmente em seu .bashrc.

export LANG=en_US.UTF-8
C. Kelly
fonte
ok, mas não quero alterar o idioma do meu sistema. Eu só quero ter alguma mensagem de erro em inglês. Alterar o idioma do sistema tem muitas consequências.
Ppr
Acredito que colocá-lo em seu .bashrc afetará apenas seu shell, bem como quaisquer comandos que leiam o .bashrc. Se você omitir "export", ele não será propagado para comandos iniciados a partir desse shell.
22613 Kelly C.
@ckelly Isso muda muitas coisas além do idioma da mensagem de erro. Por exemplo, ordens de classificação, formatação de números, ...
derobert
@prpr ok, mas não quero alterar o idioma do meu sistema - Por que você aceitou uma resposta que dá a mesma "solução"?
Piotr Dobrogost