Локализация дат в проектах Django

нет комментариев

В настройках проекта 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)

Примечательно, что названия месяцев написаны по-человечески, в родительном падеже. Вот такой вывод получается в итоге.

Локализованные даты в Django

Комментарии к статье

У этой статьи еще нет ни одного комментария.

Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.

Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.