![Первый день недели - воскресенье Первый день недели - воскресенье](https://habrastorage.org/getpro/habr/upload_files/1e4/5e9/fe8/1e45e9fe8d044c479b6fdfc07d28d33a.png)
В линуксе можно встретить такое явление, что первый день недели по умолчанию - воскресенье.
Если вы не сильно интересовались бытом иностранцев, то может выглядеть дико ?
Я столкнувшись с этим первый раз - подумал: "Моя неделя начинается в понедельник, я хочу видеть у себя календарь нормального человека".
На какое-то время с этим смирился, пока один раз не пропустил важное событие, забыв об этой особенности :-)
И сегодня пришел день, когда я решил разобраться с этой проблемой.
Сразу оговорюсь, что в большинстве дистриутивов, если корректно указывать регион.
Если вкратце, то мультиязычность и мультирешиональность в линуксе построена на локалях (locales).
Посмотреть текущие настройки можно командой locale
.
В моём случае проблема на локалиen_US
Вывод команды locale
![Вывод команды "locale" Вывод команды "locale"](https://habrastorage.org/getpro/habr/upload_files/339/450/990/339450990ef62dd0921742d701cdeffe.png)
Варианта выходит два:
Сменить локаль времени на
en_GB
, с подходящим порядком дней неделиВнести изменения в локаль
en_US
Вариант 1. Меняем локаль времени LC_TIME
Вариант рабочий, но с нюансами.
Не забываем, что в этой секции файла хранятся названия дней недели, месяцев, их форматы и т.п.
![en_GB и en_US en_GB и en_US](https://habrastorage.org/getpro/habr/upload_files/9e2/42f/af6/9e242faf6a2dc01d44a121198946db03.png)
В принципе отличия не критичные, даже более близкие к нашим реалиям ?
Порядок действий для изменения локали времени
Делаем следующие манипуляции, открывая файлы в любимом текстовом редакторе с привилегиями суперпользователя (sudo):
![en_GB.UTF-8 UTF-8 в /etc/locale.gen en_GB.UTF-8 UTF-8 в /etc/locale.gen](https://habrastorage.org/getpro/habr/upload_files/785/1b5/6d7/7851b56d768825827eec0d62240b15ea.png)
Открываем файл
/etc/locale.gen
Находим в нём строкуen_GB.UTF-8 UTF-8
и раскомментируем её, чтобы сгенерировать нужную локаль.
![Вывод команды "locale-gen" Вывод команды "locale-gen"](https://habrastorage.org/getpro/habr/upload_files/525/e71/dc9/525e71dc926aa333e937c53dbc81cc0d.png)
Перегененрируем локали командой
locale-gen
Естественно сsudo
, я же надеюсь не из под рута работаете)
![locale.conf с обновленной локлью времени locale.conf с обновленной локлью времени](https://habrastorage.org/getpro/habr/upload_files/8d2/312/ac2/8d2312ac2855142de584a67e7e9ee181.png)
И обновляем используемую локаль для времени в файле
/etc/locale.conf
, добавив строчкуLC_TIME=en_GB.UTF-8
или заменив значениеLC_TIME
![Вывод команды "cal" Вывод команды "cal"](https://habrastorage.org/getpro/habr/upload_files/9ee/f2a/d81/9eef2ad819578ec0ddd86a7beb75150b.png)
Перелогиниваемся или перезагружаем машину и видим чудо! ?
Вариант 2. Модифицируем локаль en_US
Мне этот вариант понравился больше. Я не хочу ничего менять, кроме порядка дней недели, остальное всё меня всё устраивает.
Да и шага всего два, что меня дико радует ?
Порядок действий для модификации локали
![Параметр локали, отвечающий за порядок дней недели Параметр локали, отвечающий за порядок дней недели](https://habrastorage.org/getpro/habr/upload_files/ec0/b96/c70/ec0b96c70625c12b38ab7fdf9bee1c46.png)
Открываем в редакторе файл
/usr/share/i18n/locales/en_US
и находим конец секцииLC_TIME
по строкеEND LC_TIME
И перед ее концом ставим строчку
first_weekday 2
Вывод команды locale-gen Далее перегенерируем локали командой
locale-gen
(Да, с привелениями суперпользовтеля)Перелогиниваемся или перезагружаем машину и видим чудо! ?
Вариант 3. (Бонус)
А то скажете еще, что забыл...
Если у вас дистрибутив - можно порыться в настройках системы или календаря, там тоже может быть)