В настройках проекта Django есть две основные переменные, отвечающие за локализацию — USE_I18N
и USE_L10N
. При заданном USE_I18N = True
, будут переведены основные элементы админки и вывод дат в шаблонах.
Когда включен параметр USE_L10N
, джанга буде пытаться определить системную локаль пользователя, на основе заголовков Accept-Language, посылаемых браузером. Я обычно отключаю это опцию.
Для того, чтобы выводить в шаблонах даты на русском языке, зададим формат для их вывода в переменной DATE_FORMAT
. Более подробно о параметрах форматирования написано в официальной документации.
#!/usr/bin/env python
# settings.py
USE_I18N = True
USE_L10N = False
LANGUAGE_CODE = 'ru-RU'
# Пример вывода: 16 сентября 2012
DATE_FORMAT = 'd E Y'
В некоторых случаях бывает необходимо вручную изменять формат строки с датой. Для этого я использую модуль django.utils.dateformat
.
from django.conf import settings
from datetime import datetime
from django.utils import dateformat
# Форматирование даты
formatted_date = dateformat.format(datetime.now(), settings.DATE_FORMAT)
Примечательно, что названия месяцев написаны по-человечески, в родительном падеже. Вот такой вывод получается в итоге.
Комментарии к статье
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.