В Системных настройках, Языке и регионе, когда я выбираю Соединенное Королевство, locale
вывод
LANG="en_GB"
LC_COLLATE="en_GB"
LC_CTYPE="en_GB"
LC_MESSAGES="en_GB"
LC_MONETARY="en_GB"
LC_NUMERIC="en_GB"
LC_TIME="en_GB"
LC_ALL=
Если я выберу Норвегию, хотя выходы
LANG="en_NO"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Я подозреваю, что именно по этой причине такие команды, как ls
даты, отображаются в mon date
формате вместо date mon
, даже если норвежский язык следует за последним. locale -a | grep en_NO
ничего не показывает, и я думаю, поэтому. Поэтому я попытался скопировать /usr/share/locale/no_NO
и /usr/share/locale/en_NO
изменить его в соответствии со своими потребностями, и, конечно же, я получил, mkdir: en_NO: Operation not permitted
потому что системный том монтируется только для чтения на Catalina. Итак, есть ли способ добавить свою локаль?
Я не знаю, была ли ваша проблема идентична моей, но, по крайней мере, это сработало для меня. Я также заметил, что моя система пыталась установить nb_no.UTF-8 (и потерпела неудачу) вместо no.NO.
vim ~/.config/fish/config.fish
set -x LC_ALL no_NO.UTF-8
en_NO
, с нет в наличии в системе, поэтому вопрос в том, как его сначала добавитьЭто работает на MacOS 12.5 Monterrey поверх компьютеров Mac с SIP (защита целостности системы), чип M1:
В первую очередь проверьте, существует ли региональность в системе:
locale -a | grep en_NO
Если нет результатов, региональности не существует. Делать копию бесполезно, потому что корень монтируется только для чтения, а SIP не позволяет вам его модифицировать. Хотя и есть возможность записи на него, повторно использовать SIP не получится, чтобы изменения сохранились. localedef тоже не работает. Решение состоит в том, чтобы создать домашнюю папку и изменить путь, по которому glibc ищет локали:
mkdir ~/.locale
cp -rpf /usr/share/locale/en_GB.UTF-8 ~/.locale/en_NO.UTF-8
export PATH_LOCALE=~/.locale
export LC_ALL=en_NO.UTF-8
Теперь система будет иметь соответствующую региональность. В файл ˜/.profile можно добавить следующие строки, чтобы изменения в терминале вступили в силу навсегда:
export PATH_LOCALE=~/.locale
export LC_ALL=en_NO.UTF-8
С другой стороны, если в системе существует локаль (если локаль -a | grep en_does НЕ возвращает результат), она достигает только следующего:
export LC_ALL=en_NO.UTF-8
Точно так же эта строка может быть и в ˜/.profile. В моем случае я использую es_AR на основе локали, предоставленной системой es_ES. Это самое чистое решение (и я думаю, правильное), которое я нашел до сих пор без вмешательства в систему.
/usr/local/share/locale
альтернативой пользовательской установке?
lx07
export LC_TIME="en_GB.UTF-8"
и т. д. в вашу~/.zshrc
работу для вас?Тэ
locale
показывает мне, чтоLC_TIME
этоC
. Также я хотел получить все значенияLC_*
отdefaults read NSGlobalDomain AppleLocale
lx07
source ~/.zshrc
или открыть новое окно эмулятора терминала после изменения файла...Тэ