Установка русского времени-даты для сервера Lotus Domino под Debian

Этот пост также доступен в моём ЖЖ

(скопировано правильно отсюда)

Lotus Domino + Debian Linux + Date ru_RU ( Отображение даты в «русском» формате на сервере с «локалью» en_US )

6 сентября 2011 в 18:31

OS: Debian GNU/Linux Lenny/Squeeze.
Application: IBM Lotus Domino 8.5 for Linux (xSeries).

Условия: сервер Lotus Domino 8.5 запущен с использованием англоязычной «локали» «en_US.UTF-8», менять которую на иную нежелательно.
Задача: привести формат времени и даты, используемый сервером Lotus Domino, к формату, применяемому в русскоязычных интерфейсах (формат даты и времени «локали» «en_US» «MM/DD/YYYY HH:mm:SS», а нам требуется получить на выходе «DD/MM/YYYY HH:mm:SS»).
nc_01n

Для начала проверим, какие «локали» система может использовать на данный момент:

# locale -a
C
en_US.utf8
POSIX

У меня, как правило, на свежеустановленном сервере, «en_US.utf8» — основная «локаль» интерфейса, используемая по умолчанию; это задаётся в соответствующем конфигурационном файле:

# echo /etc/default/locale
LANG=»en_US.UTF-8″

Просмотрим детали, составляющие конфигурацию используемой «локали»:

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=»en_US.UTF-8″
LC_NUMERIC=»en_US.UTF-8″
LC_TIME=»en_US.UTF-8″
LC_COLLATE=»en_US.UTF-8″
LC_MONETARY=»en_US.UTF-8″
LC_MESSAGES=»en_US.UTF-8″
LC_PAPER=»en_US.UTF-8″
LC_NAME=»en_US.UTF-8″
LC_ADDRESS=»en_US.UTF-8″
LC_TELEPHONE=»en_US.UTF-8″
LC_MEASUREMENT=»en_US.UTF-8″
LC_IDENTIFICATION=»en_US.UTF-8″
LC_ALL=

Нас интересует только переменная LC_TIME, которая определяет, какую «локаль» использовать при отображении всего, что имеет отношение к дате и времени. Смотрим, что у нас со форматом отображения времени сейчас:

$ locale LC_TIME -k
abday=»Sun;Mon;Tue;Wed;Thu;Fri;Sat»
….
d_fmt=»%m/%d/%Y»
….

Параметр d_fmt определяет последовательность отображения элементов даты. В нашем случае значение месяца выводится впереди значения дня; следует добиться их обратного расположения, попутно заменив символы разделителя.

Добавим в систему поддержку ещё одной «локали», если это не было сделано на этапе её установки:

# dpkg-reconfigure locales

В предложенном списке «локалей», дополнительно к уже отмеченным, выбираем «ru_RU.UTF-8 UTF-8»:

….
en_US.UTF-8 UTF-8
….
ru_RU.UTF-8 UTF-8
….

Оставляем англоязычную «локаль» «en_US.UTF-8 UTF-8» в качестве действующей по умолчанию:

….
Default locale for the system environment:
en_US.UTF-8
….

В результате, после генерирования всех отмеченных «локалей», мы должны увидеть как минимум следующее:

Generating locales (this might take a while)…
en_US.UTF-8… done
ru_RU.UTF-8… done
Generation complete.

Проверяем, какие «локали» нам теперь доступны:

# locale -a
C
en_US.utf8
POSIX
ru_RU.utf8

Ради интереса пробуем присвоить переменной LC_TIME новое значение:

$ LC_TIME=»ru_RU.UTF-8″
$ export LC_TIME

Посмотрим, как изменилась конфигурация используемой «локали»:

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=»en_US.UTF-8″
LC_NUMERIC=»en_US.UTF-8″
LC_TIME=»ru_RU.UTF-8″
LC_COLLATE=»en_US.UTF-8″
LC_MONETARY=»en_US.UTF-8″
LC_MESSAGES=»en_US.UTF-8″
LC_PAPER=»en_US.UTF-8″
LC_NAME=»en_US.UTF-8″
LC_ADDRESS=»en_US.UTF-8″
LC_TELEPHONE=»en_US.UTF-8″
LC_MEASUREMENT=»en_US.UTF-8″
LC_IDENTIFICATION=»en_US.UTF-8″
LC_ALL=

Видно, что в общем для работы используется «локаль» по умолчанию, кроме отображения даты и времени.

Посмотрим, как изменились параметры отображения даты и времени:

$ locale LC_TIME -k
abday=»Вск;Пнд;Втр;Срд;Чтв;Птн;Сбт»
….
d_fmt=»%d.%m.%Y»
….

То, что нужно, параметр d_fmt указывает на формат вывода даты, более близкий русскому, нежели американцу.

Теперь подскажем системе запускать сервер Lotus Domino с особыми параметрами «локали». У меня для запуска используется специально созданная учётная запись «notes». В файле настроек и переменных окружения пользователя «notes», расположенном в специфичном каталоге «/var/lib/notes/», вносим указание экспорта требуемого значения переменной LC_TIME:

# echo /var/lib/notes/.bash_profile
….
export LC_TIME=»ru_RU.UTF-8″
….

В качестве последнего штриха, который может и не понадобится (в зависимости от текущей конфигурации сервер Lotus Domino), указываем серверу Lotus Domino на используемый формат даты и времени:

# echo /var/lib/notes/data/notes.ini
# Используем ‘D’, ‘M’ и ‘Y’ для установки последовательности отображения составляющих даты
DateOrder=DMY
# Используем символ ‘/’, ‘-‘ или ‘.’ в качестве разделителей составляющих даты
DateSeparator=.
# Используем символ ‘/’, ‘-‘ или ‘:’ в качестве разделителей составляющих времени
TimeSeparator=:
# Вибираем тип часов между ’12_HOUR’ и ’24_HOUR’
ClockType=24_HOUR

Теперь перезапускаем сервер Lotus Domino с новым значением переменной LC_TIME и получаем в журнал событий дату и время в «русском» варианте.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.