È possibile impostare la lingua di output dei comandi della shell su qualcosa di diverso dall'inglese?


9

Sono corretto nel mio presupposto che i comandi shell come cp, man, ls, ecc sempre stampare i messaggi in inglese indipendentemente dalle impostazioni di sistema e utente, e anche i messaggi shell standard come "command not found" non sono localizzabili?

In Preferenze di Sistema> Lingua e testo, ho provato a cambiare lingua, regione e sorgente di input in un'altra lingua / lingua. Ho anche provato a correre sudo languagesetup. Nulla sembra influenzare la lingua dei comandi della shell, quindi immagino che debba essere codificato in inglese, ma non sono riuscito a trovare alcun riferimento su Internet. Se ciò non è corretto, come si modifica la lingua della shell in OS X?


Penso che il localecomando potrebbe aiutarti. Non sono riuscito a farlo funzionare con successo, ma ecco alcune istruzioni che potrebbero farti iniziare: linuxspy.com/1850/how-to-change-the-bash-shell-language
alexwlchan

Risposte:


7

Se cambi LC_MESSAGES, cambia la lingua dell'errore e i messaggi di aiuto mostrati da bash, ma solo una parte di essi viene tradotta per molte lingue:

$ 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.

Terminale e iTerm 2 set LANG(che modifica tutte le variabili locali effettive come LC_MESSAGES) in base alla regione selezionata nelle Preferenze di Sistema per impostazione predefinita.

Alcune distribuzioni GNU / Linux vengono fornite con pagine man in lingue diverse dall'inglese, ma OS X no. Alcuni pacchetti Homebrew aggiungono pagine man localizzate 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

Ad esempio, è possibile copiare /usr/share/man/de/da una macchina virtuale Ubuntu su OS X, ma solo una piccola parte delle pagine man viene tradotta:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857

1
In una semplice bash 3.2 su Mountain Lion, l'impostazione LC_MESSAGESnon cambierebbe la lingua di nessun messaggio. I messaggi in tedesco devono essere probabilmente un'aggiunta homebrew.
GOTO 0

@ ft1 Oh, hai ragione. Sto usando bash 4.2. Forse quelle traduzioni sono state aggiunte in bash 4.0 o successive o forse non sono state incluse nella versione di bash 3.2 inclusa in OS X.
Lri,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.