¿Es posible establecer el idioma de salida de los comandos de shell en otra cosa que no sea inglés?

9

Estoy en lo correcto en mi suposición de que los comandos shell como cp, man, ls, etc. siempre imprimir sus mensajes en Inglés, independientemente de la configuración del sistema y de usuario, y también los mensajes de concha estándar como "command not found" no son localizables?

En Preferencias del sistema> Idioma y texto, intenté cambiar el idioma, la región y la fuente de entrada a un idioma / localidad diferente. También intenté correr sudo languagesetup. Nada parece afectar el idioma de los comandos de shell, por lo que supongo que debe estar codificado en inglés, pero no pude encontrar ninguna referencia en Internet. Si esto no es correcto, ¿cómo se cambia el idioma del shell en OS X?

GOTO 0
fuente
Creo que el localecomando podría ayudarte. No he podido hacer que funcione correctamente, pero aquí hay algunas instrucciones que pueden ayudarlo a
alexwlchan

Respuestas:

7

Si cambia LC_MESSAGES, cambia el idioma de error y los mensajes de ayuda que muestra bash, pero solo una parte de ellos se traduce para muchos 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 terminal e iTerm 2 LANG(que cambia todas las variables locales reales como LC_MESSAGES) en función de la región seleccionada en Preferencias del sistema de forma predeterminada.

Algunas distribuciones de GNU / Linux vienen con páginas de manual en otros idiomas además del inglés, pero OS X no. Sin /usr/local/share/man/embargo, algunos paquetes de Homebrew agregan páginas man localizadas a :

$ 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

Podría, por ejemplo, copiar /usr/share/man/de/desde una VM de Ubuntu a OS X, pero solo una pequeña parte de las páginas man están traducidas:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
Lri
fuente
1
En un simple bash 3.2 en Mountain Lion, la configuración LC_MESSAGESno cambiaría el idioma de ningún mensaje. Los mensajes en alemán deben ser probablemente una adición de Homebrew.
GOTO 0
@ ft1 Oh, tienes razón. Estoy usando bash 4.2. Tal vez esas traducciones se agregaron en bash 4.0 o posterior o tal vez no se incluyeron en la versión de bash 3.2 que se incluye con OS X.
Lri