É possível definir o idioma de saída dos comandos do shell para algo diferente de inglês?

9

Estou correto em minha suposição de que a Shell comandos como cp, man, ls, etc. sempre imprimir suas mensagens em Inglês independentemente das configurações de sistema e do usuário, e também mensagens de shell padrão como "comando não encontrado" não é localizável?

Em Preferências do Sistema> Idioma e Texto, tentei alterar o idioma, a região e a fonte de entrada para um idioma / localidade diferente. Eu também tentei correr sudo languagesetup. Nada parece afetar o idioma dos comandos do shell, então acho que deve ser codificado para o inglês, mas não consegui encontrar nenhuma referência na internet. Se isso não estiver correto, como você altera o idioma do shell no OS X?

GOTO 0
fonte
Eu acho que o localecomando pode ajudá-lo. Eu não tenho sido capaz de fazê-lo funcionar com sucesso, mas aqui estão algumas instruções que podem ajudar a começar: linuxspy.com/1850/how-to-change-the-bash-shell-language
alexwlchan

Respostas:

7

Se você alterar LC_MESSAGES, ele altera o idioma do erro e as mensagens de ajuda mostradas pelo bash, mas apenas uma parte delas é traduzida para vários idiomas:

$ export LC_MESSAGES=de_DE.UTF-8
$ aa
bash: aa: Kommando nicht gefunden.
$ help alias
alias: alias [-p] [Name[=Wert] ... ]
    Definiert Aliase oder zeigt sie an.

    Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form
    `alias Name=Wert' auf die Standardausgabe gedruckt.

    Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein
    Wert angegeben wurde.
    A trailing space in VALUE causes the next word to be checked for
    alias substitution when the alias is expanded.

    Options:
      -p    Print all defined aliases in a reusable format

    Rückgabewert:
    Meldet Erfolg, außer wenn NAME nicht existiert.

Conjunto de terminais e iTerm 2 LANG(que altera todas as variáveis ​​de localidade reais como LC_MESSAGES) com base na região selecionada em Preferências do sistema por padrão.

Algumas distribuições GNU / Linux vêm com páginas de manual em outros idiomas além do inglês, mas o OS X não. Alguns pacotes Homebrew adicionam páginas de manual localizadas a /usr/local/share/man/:

$ LC_MESSAGES=de_DE.UTF-8 man -w ps2pdf
/usr/local/share/man/de/man1/ps2pdf.1
$ LC_MESSAGES=de_DE.UTF-8 man ps2pdf|head
PS2PDF(1)                         Ghostscript                        PS2PDF(1)



NAME
       ps2pdf - konvertiert PostScript nach PDF mittels ghostscript
       ps2pdf12 - konvertiert PostScript nach PDF 1.2 (kompatibel zu Acrobat 3
       und spAxter) mittels ghostscript
       ps2pdf13 - konvertiert PostScript nach PDF 1.3 (kompatibel zu Acrobat 4
       und spAxter) mittels ghostscript

Você pode, por exemplo, copiar /usr/share/man/de/de uma VM do Ubuntu para o OS X, mas apenas uma pequena parte das páginas de manual é traduzida:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
Lri
fonte
1
Em uma festa simples 3.2 no Mountain Lion, a configuração LC_MESSAGESnão mudaria o idioma de nenhuma mensagem. As mensagens em alemão devem ser provavelmente uma adição ao Homebrew.
GOTO 0
@ ft1 Oh, você está certo. Estou usando o bash 4.2. Talvez essas traduções tenham sido adicionadas no bash 4.0 ou posterior ou talvez não tenham sido incluídas na versão do bash 3.2 incluída no OS X.
Lri