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

¿Tengo razón en mi suposición de que los comandos de shell como cp, man, ls, etc. siempre imprimen sus mensajes en inglés, independientemente de la configuración del sistema y del usuario, y que los mensajes de shell estándar como "comando no encontrado" 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/configuración regional 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 cambia el idioma del shell en OS X?

Creo que el localecomando podría ayudarte. No he podido hacer que funcione correctamente, pero aquí hay algunas instrucciones que pueden ayudarlo a comenzar: linuxspy.com/1850/how-to-change-the-bash-shell-language

Respuestas (1)

Si cambia LC_MESSAGES, cambia el idioma de error y los mensajes de ayuda que muestra bash, pero solo una parte de ellos se traducen a 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 man en otros idiomas además del inglés, pero OS X no. Sin embargo , algunos paquetes de Homebrew agregan páginas man localizadas /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

Por ejemplo, podría copiar /usr/share/man/de/desde una VM de Ubuntu a OS X, pero solo se traduce una pequeña parte de las páginas man:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
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.
@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.