Czy można ustawić język wyjściowy poleceń powłoki na cokolwiek innego niż angielski?

9

Czy mam rację w moim założeniu, że powłoka poleceń, takich jak cp, man, ls, itd. Zawsze drukować swoje wiadomości w języku angielskim, niezależnie od ustawień systemowych i użytkownika, a także standardowe komunikaty powłoki typu „nie znaleziono polecenia” nie są lokalizowanymi?

W Preferencjach systemowych> Język i tekst próbowałem zmienić język, region i źródło wejściowe na inny język / ustawienia regionalne. Próbowałem też biegać sudo languagesetup. Wydaje się, że nic nie wpływa na język poleceń powłoki, więc chyba musi być na stałe zakodowany w języku angielskim, ale nie mogłem znaleźć żadnych odniesień w Internecie. Jeśli to nie jest poprawne, jak zmienić język powłoki w OS X?

GOTO 0
źródło
Myślę, że localepolecenie może ci pomóc. Nie udało mi się, aby działał pomyślnie, ale oto kilka instrukcji, które mogą pomóc
alexwlchan

Odpowiedzi:

7

Jeśli zmienisz LC_MESSAGES, zmienia język błędów i pomaga wyświetlać komunikaty bash, ale tylko część z nich jest tłumaczona na wiele języków:

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

Zestaw Terminal i iTerm 2 LANG(który zmienia wszystkie rzeczywiste zmienne regionalne, takie jak LC_MESSAGES) w oparciu o region wybrany domyślnie w Preferencjach systemowych.

Niektóre dystrybucje GNU / Linux zawierają strony podręcznika w innych językach niż angielski, ale OS X nie. Niektóre pakiety Homebrew dodają zlokalizowane strony podręcznika do /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

Możesz na przykład skopiować /usr/share/man/de/z maszyny Wirtualnej Ubuntu na OS X, ale przetłumaczona jest tylko niewielka część stron podręcznika:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
Lri
źródło
1
W zwykłym bash 3.2 na Mountain Lion ustawienie LC_MESSAGESnie zmieniłoby języka żadnych wiadomości. Wiadomości w języku niemieckim muszą być prawdopodobnie dodatkiem Homebrew.
GOTO 0
@ ft1 Och, masz rację. Używam bash 4.2. Może te tłumaczenia zostały dodane w wersji bash 4.0 lub nowszej, a może nie zostały uwzględnione w wersji bash 3.2 dołączonej do systemu OS X.
Lri