В линуксе можно встретить такое явление, что первый день недели по умолчанию — воскресенье.
Если вы не сильно интересовались бытом иностранцев, то может выглядеть дико ?
Я столкнувшись с этим первый раз — подумал: «Моя неделя начинается в понедельник, я хочу видеть у себя календарь нормального человека».
На какое-то время с этим смирился, пока один раз не пропустил важное событие, забыв об этой особенности 🙂
И сегодня пришел день, когда я решил разобраться с этой проблемой.
Сразу оговорюсь, что в большинстве дистриутивов, если корректно указывать регион.
Если вкратце, то мультиязычность и мультирешиональность в линуксе построена на локалях (locales).
Посмотреть текущие настройки можно командой locale.
В моём случае проблема на локалиen_US
Вывод команды locale
Варианта выходит два:
-
Сменить локаль времени на
en_GB, с подходящим порядком дней недели -
Внести изменения в локаль
en_US
Вариант 1. Меняем локаль времени LC_TIME
Вариант рабочий, но с нюансами.
Не забываем, что в этой секции файла хранятся названия дней недели, месяцев, их форматы и т.п.
В принципе отличия не критичные, даже более близкие к нашим реалиям ?
Порядок действий для изменения локали времени
Делаем следующие манипуляции, открывая файлы в любимом текстовом редакторе с привилегиями суперпользователя (sudo):
-
Открываем файл
/etc/locale.gen
Находим в нём строкуen_GB.UTF-8 UTF-8и раскомментируем её, чтобы сгенерировать нужную локаль.
-
Перегененрируем локали командой
locale-genЕстественно сsudo, я же надеюсь не из под рута работаете)
-
И обновляем используемую локаль для времени в файле
/etc/locale.conf, добавив строчкуLC_TIME=en_GB.UTF-8или заменив значениеLC_TIME
-
Перелогиниваемся или перезагружаем машину и видим чудо! ?
Вариант 2. Модифицируем локаль en_US
Мне этот вариант понравился больше. Я не хочу ничего менять, кроме порядка дней недели, остальное всё меня всё устраивает.
Да и шага всего два, что меня дико радует ?
Порядок действий для модификации локали
-
Открываем в редакторе файл
/usr/share/i18n/locales/en_USи находим конец секцииLC_TIMEпо строкеEND LC_TIME -
И перед ее концом ставим строчку
first_weekday 2
Вывод команды locale-gen -
Далее перегенерируем локали командой
locale-gen(Да, с привелениями суперпользовтеля)
-
Перелогиниваемся или перезагружаем машину и видим чудо! ?
Вариант 3. (Бонус)
А то скажете еще, что забыл…
Если у вас дистрибутив — можно порыться в настройках системы или календаря, там тоже может быть)
ссылка на оригинал статьи https://habr.com/ru/articles/700530/
Добавить комментарий