2

Я пытаюсь настроить форматирование дат в шаблонах на основе языкового стандарта, предоставленного пользователем. Поскольку остальная часть страницы останется в исходном локальном ('en'), я хочу, чтобы мои данные предоставили данные для форматирования.Дата ввода формата django на пользовательский язык

например, даты.

пользователей в uk должны иметь возможность использовать l10n на даты на своих страницах, но я не хочу, чтобы весь сайт был en_GB.

есть способ установить языковой стандарт в шаблоне внутри блока, например. что-то вроде

{% locale|'en_GB' %} 
    {{ my_date|localize }} 
{% endlocale %} 

ответ

0

Вам не нужно ничего делать в шаблоне.

Внутри вашего settings.py определите настройку FORMAT_MODULE_PATH. как:

FORMAT_MODULE_PATH = 'myproject.myapp.formats' 

под formats каталога создать один пакет питона на поддерживаемого языка (другой , чем ваш по умолчанию) вашего проекта. Внутри каждого из них вы должны иметь formats.py , который должен иметь любые локализованные параметры форматирования.

В моем случае язык по умолчанию для моего проекта - en, но я также поддерживаю el (греческий). Так что у меня это в моем settings.py:

FORMAT_MODULE_PATH = 'myproject.websiteapp.formats' 

Внутри каталога myproject/websiteapp/formats У меня есть el пакет с formats.py файла, например:

el/ 
__init__.py 
formats.py 

Внутри formats.py я это:

DATETIME_FORMAT="l j M Y, g:i a" 

, который является греческим конкретным представлением даты.

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

{{ mymodel.pub_date }} 

Он печатает en представления по умолчанию, когда задан язык по умолчанию:

Published on: Feb. 22, 2013, 1:47 p.m. 

и мой обычай греческий, когда locale установлен на el.

Δημοσιεύτηκε: Τετάρτη 6 Φεβ 2013, 5:39 μμ. 

Подробнее here

Редактировать

Хм, я просто понял, что вы просили конкретных блоков шаблона или значений. Возможно, localize шаблон фильтр или localize template tag более уместны для вашего конкретного случая?

 Смежные вопросы

  • Нет связанных вопросов^_^