Я впервые использовал wget
после установки Lion OS X и заметил, что wget локализован на мой родной язык. Запуск set
команды в терминале показал, что моя LANG
переменная представляет мой локальный язык. Где я могу изменить это или заставить wget
игнорировать этот параметр?
Обновить
Вот что locale
дает мне:
LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=
Следовательно, весь вывод непараметрических параметров (таких как приглашения и сообщения отладки) осуществляется на литовском языке. Это моя проблема. Я хотел бы вернуть его на английский.
Я использую в zsh
качестве оболочки для входа в систему.
wget
? А чтоlocale
показывает и совпадает ли это с тем, что вы ожидаете от выбора языка на панели настроек « Язык и текст» ?Ответы:
По умолчанию Терминал устанавливает переменные среды локали в соответствии с выбранным в данный момент языком и форматами времени / даты / числа, которые использует Терминал, которые выбираются через
(Это имя на Lion. В более ранних системах точное имя панели настроек может отличаться.)
Временное решение - перетащить английский в верхнюю часть списка языков, затем открыть терминал, а затем переместить литовский обратно в верхнюю. Тогда только терминал будет на английском. Тем не менее, он будет сброшен на литовский, если вы выйдите и перезапустите терминал.
Постоянный подход состоит в том, чтобы сказать Терминалу не устанавливать локальные переменные среды, отключив
Тогда языковой стандарт по умолчанию будет «C» без указания языка, а большинство программ по умолчанию будет использовать английский.
Обратите внимание, что отключение этого означает, что некоторые программы не будут знать, какой терминал использует кодировку символов, и будут предполагать, что это только ASCII или ISO-Latin-1. Поэтому, если Терминал использует UTF-8 (по умолчанию), эти программы могут работать или не работать так, как нужно.
Если это главным образом
wget
, я рекомендую вам сделать копию профиля настроек по умолчанию, отключить настройку локали в вашем пользовательском профиле и использовать этот профиль только при использованииwget
, чтобы вы могли продолжать использовать UTF-8 с полной поддержкой при использовании других программ, используя настройки по умолчанию.Как уже упоминали другие, вы также можете переопределить начальные настройки локали, предоставленные терминалом, в сценарии запуска оболочки. Для zsh поместите его в ~ / .zshrc. Для bash используйте ~ / .bashrc (а если у вас его еще нет, создайте ~ / .bash_profile, который запускает ~ / .bashrc).
См. X-man-page: // 1 / locale для получения дополнительной информации о каждом из значений среды локали.
Однако, если вы просто
unset LANG
или установите его в «C», это обычно применяется ко всем вашим оболочкам и программам, в то время как большую часть времени вы, вероятно, захотите использовать UTF-8 и в терминале установить переменные языкового стандарта для соответствия, чтобы получить высшую степень сотрудничества, верности и функциональности.Поэтому, если вы собираетесь пойти по этому пути, я предлагаю вам написать код для редактирования, а не замены начальных значений, чтобы вы сохранили информацию о кодировке («UTF-8») и просто принудительно переключили язык на английский, вместо того, чтобы устанавливать переменные в «C».
Например, это работает в zsh и bash:
Когда
LANG="lt_LT.UTF-8"
это изменит его наLANG="en_US.UTF-8"
. У меня нетwget
возможности проверить это, но этого должно быть достаточно.Это означает, что если вы измените настройку кодировки символов в терминале, вы не переопределите ее в скрипте запуска оболочки.
источник
LANG
переопределения:echo ${LANG/*./en_US.}
заменяет имя текущей культурыen_US
независимо от того, что это такое; работаетbash
,ksh
,zsh
.Это установлено здесь ...
Если вам нужно больше или меньше опций в раскрывающемся меню, перейдите на вкладку « Кодировки », чтобы просмотреть еще большую награду.
источник
LANG=
а все остальные значения по умолчанию будут равны"C"
.Я решил эту проблему, установив язык в своем файле .profile, который загружается при каждом запуске терминала.
источник
LC_ALL
переопределяетLANG
, поэтому ваша первая команда не будет иметь никакого эффекта.POSIX
это эквивалентно,C
и это не справляется с Unicode вообще.Основываясь больше на опыте Linux, если вы не хотите полностью менять свою локализацию с помощью LC_LANG, но хотели бы просто иметь системные сообщения на английском языке, вы просто должны установить
источник
LC_MESSAGES
переменная, которая определяет, на каком языке должны выводиться сообщения (если они установлены).Используя сервер Debian на французском языке и клиент Bash Macsox, я «просто» должен был добавить это в мой файл .bash_profile в пользовательском каталоге macosx:
Решаемые.
источник
Другие ответы верны, то есть о
Terminal
настройке для установки переменных окружения локали при запуске и использовании оболочки/etc/profile
. Однако есть еще один способ, который стоит понять, особенно если «проблема» возникает из-за удаленногоssh
входа в систему.OpenSSH (используемый в Linux, BSD и macOS) может отправлять переменные среды из клиентской среды в оболочку, которую запускает сервер. Это происходит только в том случае, если клиент настроен на их отправку, а сервер настроен на их прием. Клиент (
~/.ssh/config
) должен иметь:и серверу (
/etc/ssh/sshd_config
) потребуется:Если они оба на месте, локальный клиент передается в оболочку входа на сервере ssh:
Требуемые настройки сервера не установлены по умолчанию в Snow Leopard ; это там, в Сьерре . Не забудьте перезапустить сервер SSH после изменения
/etc/sshd_config
!!!источник