Ist es möglich, die Ausgabesprache von Shell-Befehlen auf etwas anderes als Englisch einzustellen?

9

Bin ich in meiner Annahme richtig , dass Shell - Befehle wie cp, man, lsusw. immer ihre Nachrichten auf Englisch , unabhängig von System- und Benutzereinstellungen und auch Standard - Shell - Nachrichten wie sind „Befehl nicht gefunden“ drucken nicht lokalisierbar?

In den Systemeinstellungen> Sprache und Text habe ich versucht, Sprache, Region und Eingabequelle in eine andere Sprache / ein anderes Gebietsschema zu ändern. Ich habe auch versucht zu laufen sudo languagesetup. Nichts scheint die Sprache der Shell-Befehle zu beeinflussen, daher muss sie wohl fest auf Englisch codiert sein, aber ich konnte im Internet keine Referenz finden. Wie ändern Sie die Shell-Sprache in OS X, wenn dies nicht korrekt ist?

GOTO 0
quelle
Ich denke, der localeBefehl könnte Ihnen helfen. Ich habe es nicht erfolgreich zum Laufen gebracht
erleichtern

Antworten:

7

Wenn Sie Änderungen LC_MESSAGESvornehmen, wird die Sprache der Fehler- und Hilfemeldungen geändert , die von bash angezeigt werden. Nur ein Teil davon wird für viele Sprachen übersetzt:

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

Terminal- und iTerm 2-Set LANG(das alle tatsächlichen Gebietsschemavariablen wie ändert LC_MESSAGES) basierend auf der Region, die standardmäßig in den Systemeinstellungen ausgewählt wurde.

Einige GNU / Linux-Distributionen enthalten Manpages in anderen Sprachen als Englisch, OS X jedoch nicht. Einige Homebrew-Pakete fügen jedoch lokalisierte Manpages hinzu /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

Sie könnten beispielsweise /usr/share/man/de/von einer Ubuntu-VM nach OS X kopieren , aber nur ein kleiner Teil der Manpages wird übersetzt:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
Lri
quelle
1
In einer einfachen Bash 3.2 auf Mountain Lion LC_MESSAGESwürde die Einstellung die Sprache von Nachrichten nicht ändern. Die Nachrichten auf Deutsch müssen wahrscheinlich eine Homebrew-Ergänzung sein.
GOTO 0
@ ft1 Oh, du hast recht. Ich benutze Bash 4.2. Vielleicht wurden diese Übersetzungen in Bash 4.0 oder höher hinzugefügt oder sie waren nicht in der Version von Bash 3.2 enthalten, die in OS X enthalten ist.
Lri