Я создал файлы локализации en_US.utf8 , et_EE.iso88591 и ru_RU.utf8 . Теперь, если я попытаюсь изменить любую переменную локали на ru_RU.utf8 или en_US.utf8 , то это не даст никакого эффекта:
# locale -a
C
en_US.utf8
et_EE
et_EE.iso88591
POSIX
ru_RU.utf8
# LC_TIME=ru_RU.utf8
# locale | grep LC_TIME
LC_TIME="et_EE.iso88591"
# LC_TIME="ru_RU.utf8"
# locale | grep LC_TIME
LC_TIME="et_EE.iso88591"
#
Однако если я изменю переменную LANG = , то все остальные переменные, кроме LANGUAGE = и LC_ALL =, принимают значение переменной LANG = . Есть ли способ изменить каждую переменную локали отдельно? Кроме того, правильно ли я, что переменные локали не являются обычными переменными оболочки, а больше похожи на параметры утилиты локали ?
LANG
иLC_xxx
переменные окружения? мое тестирование показывает, что толькоLANG
и,LANGUAGE
иLC_MESSAGES
иLC_ALL
являются переменными среды, в то время как другие переменные любятLC_CTYPE
иLC_MONETARY
не являются переменными среды (также они не являются переменными оболочки)?