Устанавливаем LC переменные
После генерации локали ru, я делаю настройку региональных параметров. Такие параметры включают ряд LC переменных. Они нужны, чтобы программы могли понять по каким правилам, как пример, выводить дату или форматировать десятичные числа. Поскольку даты являются самым ярким примером, то приведу именно его:
$ date
Wed Sep 11 06:03:48 PM MSK 2024
$ LC_TIME=ru_RU.UTF-8 date
Ср 11 сен 2024 18:03:27 MSK
Разница в форматах очевидна. В данном случае играет роль переменная окружения LC_TIME, но есть и некоторые другие. Информацию по установленным сейчас LC переменным можно узнать с помощью команды localectl:
$ localectl
System Locale: LANG=en_US.UTF-8
LANGUAGE=en_US:en
VC Keymap: (unset)
X11 Layout: us,ru
X11 Model: pc105
X11 Variant: ,
X11 Options: grp:win_space_toggle
Как видно, сейчас ни одна LC переменная не установлена, установлены только переменные LANG и LANGUAGE. Установлены они по-умолчанию в en_US.
Релевантную документацию по локалям и переменным окружения LC можно найти в man locale. Разбирать всё переменные я не буду, отмечу только, что для меня оптимальным вариантом стало форматирование всего в ru_RU. Исключение только для сообщений и интерфейса программ, их я оставляю в en_US.
Хорошая локализация иногда отсутствует вовсе. Наличие локализации также мешает нагуглить какие кнопки надо нажимать в интерфейсе. Большинство информации можно найти, к сожалению, только на англоязычных ресурсах.
Чтобы установить параметры, я пользуюсь update-locale:
$ sudo update-locale \
LC_ADDRESS=ru_RU.UTF-8 \
LC_IDENTIFICATION=ru_RU.UTF-8 \
LC_MEASUREMENT=ru_RU.UTF-8 \
LC_MONETARY=ru_RU.UTF-8 \
LC_NAME=ru_RU.UTF-8 \
LC_NUMERIC=ru_RU.UTF-8 \
LC_PAPER=ru_RU.UTF-8 \
LC_TELEPHONE=ru_RU.UTF-8 \
LC_TIME=ru_RU.UTF-8
Проверить, что настройки применились, можно в упомянутом localectl или заглянув в файл locale, который найдётся в директории /etc/default/:
$ cat /etc/default/locale
# File generated by update-locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_NUMERIC=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
Единственный оставшийся элемент, который доставляет проблемы – размер бумаги. Например, в LibreOffice и ряде других программ он устанавливается как letter, когда нужен A4. Исправить ситуацию можно, записав a4 в /etc/papersize:
$ echo 'a4' | sudo tee /etc/papersize
a4
На этом настройку локализации системы я завершаю.