Можно ли установить язык вывода команд оболочки на что-нибудь кроме английского?

9

Я правильно в моем предположении , что команды оболочки , такие как cp, man, lsи т.д. всегда печатать свои сообщения на английском языке независимо от системных и пользовательских настроек, а также стандартные сообщения оболочки , как «команда не найдена» не локализуемые?

В «Системных настройках»> «Язык и текст» я попытался изменить язык, регион и источник ввода на другой язык / локаль. Я тоже пробовал бегать sudo languagesetup. Кажется, что ничто не влияет на язык команд оболочки, поэтому я думаю, что он должен быть жестко запрограммирован на английский, но я не смог найти никакой ссылки в Интернете. Если это не правильно, как вы измените язык оболочки в OS X?

GOTO 0
источник
Я думаю, что localeкоманда может помочь вам. Я не смог заставить его работать успешно, но вот несколько инструкций, которые могут помочь вам начать: linuxspy.com/1850/how-to-change-the-bash-shell-language
alexwlchan

Ответы:

7

Если вы измените LC_MESSAGESего, он изменит язык сообщений об ошибках и справочных сообщений, отображаемых bash, но только часть из них переведена на многие языки:

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

Терминал и iTerm 2 устанавливаются LANG(что изменяет все фактические переменные локали, например LC_MESSAGES) в зависимости от региона, выбранного в Системных настройках по умолчанию.

Некоторые дистрибутивы GNU / Linux поставляются с man-страницами на других языках, кроме английского, но OS X этого не делает. Некоторые пакеты Homebrew добавляют локализованные справочные страницы к /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

Вы можете, например, скопировать /usr/share/man/de/с виртуальной машины Ubuntu в OS X, но переведена только небольшая часть справочных страниц:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857
LRI
источник
1
В обычном bash 3.2 на Mountain Lion настройка LC_MESSAGESне изменит язык сообщений. Сообщения на немецком языке, вероятно, должны быть дополнением Homebrew.
GOTO 0
@ ft1 О, ты прав. Я использую Bash 4.2. Возможно, эти переводы были добавлены в bash 4.0 или более поздней версии, или, возможно, они не были включены в версию bash 3.2, которая включена в OS X.
Lri