Как локализовать время в django?

Пользователь

от nelle , в категории: Python , 2 месяца назад

Как локализовать время в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jeromy_ruecker , 2 месяца назад

@nelle 

В Django можно локализовать время с использованием модуля django.utils.timezone и настройки TIME_ZONE в файле settings.py.

  1. Установите необходимые языковые пакеты в вашем проекте (например, gettext):
1
pip install gettext


  1. В файле settings.py установите желаемый часовой пояс TIME_ZONE:
1
TIME_ZONE = 'Europe/Moscow'


  1. Запустите команду makemessages для создания файлов перевода:
1
python manage.py makemessages -l ru


Здесь ru - это код языка, на котором будут доступны переводы.

  1. Откройте файл locale/ru/LC_MESSAGES/django.po и найдите строку с переводом формата времени в следующем формате:
1
2
msgid "j N, Y, P"
msgstr ""


  1. Заполните переводы для всех форматов времени, которые вы хотите локализовать. Например:
1
2
msgid "j N, Y, P"
msgstr "d N Y г., H:i"


  1. Сохраните файлы и запустите команду compilemessages:
1
python manage.py compilemessages


  1. В вашем шаблоне Django используйте фильтр localtime для локализации времени:
1
{{ value|localtime }}


Где value - это значение времени, которое нужно локализовать.


Теперь Django будет использовать локализованные форматы времени, заданные в переводах, вместо значения по умолчанию.