Как я могу установить язык (и культуру), используемый системой шаблонов django в веб-приложении? - PullRequest
0 голосов
/ 19 февраля 2010

Я пишу приложение Google App Engine с использованием инфраструктуры WebApp.Мне бы хотелось, чтобы различные фильтры django использовали язык (и культуру), запрашиваемый пользовательским агентом, а не язык по умолчанию (английский).В основном меня интересуют timesince, timeuntil и date.

. Дополнительный вопрос: как включить фильтры, предоставляемые django.contrib.markup внутри WebApp?

1 Ответ

3 голосов
/ 19 февраля 2010

Как установить язык (и культуру), используемый системой шаблонов django в веб-приложении?

Что вам нужно, так это возможность интернационализации и локализации в django. Они сокращенно обозначены как I18N и L10N соответственно.

http://makeyjl.blogspot.com/2009/02/using-djangos-i18n-in-google-app-engine.html

Благодаря этой статье я получил многоязыковую поддержку (интернационализацию) django, работающую вместе с фреймворком GAAP для веб-приложений. Он проведет вас по шагам настройки различных ручек и циферблатов, чтобы активировать правильный язык и локаль на основе входящего запроса.

Единственное отличие от статьи в моей настройке состоит в том, что я скопировал код в разделе «Настройка» в начало метода I18NRequestHandler.reset_language(), чтобы избежать случайной ошибки «Переменная среды DJANGO_SETTINGS_MODULE не определена».

примечание: я принимаю это как "культура", вы имели в виду "язык"

Как включить фильтры, предоставляемые django.contrib.markup внутри WebApp?

Поместите следующее в ваш файл, который содержит функцию "main", чуть ниже всех операторов import.

from google.appengine.ext import webapp
webapp.template.register_template_library('django.contrib.markup.templatetags.markup')

Так как GAE не предоставляет готовые текстильные, разметочные или reST из коробки, вам нужно также разместить любую библиотеку, которую вы хотите использовать в вашем проекте GAE, чтобы, например, import textile работы.

Затем вы можете написать {{ "*bold*"|textile }} и настроить фильтр разметки на это.

...