Django i18n язык по умолчанию без префиксов пути
У меня есть многоязычное приложение Django, которое я портирую на Django 1.4. Поддержка I18n в настоящее время основана на некоторых отвратительных взломах, я бы хотел, чтобы она использовала встроенные модули Django i18n.
Одно ограничение заключается в том, что я не хочу менять уже существующие URL-адреса. Этот сайт был активен некоторое время, и на него есть внешние ссылки, которые я не хочу нарушать или перенаправлять. Схема URL работает следующим образом: английский контент находится в корне сайта, в то время как другие языки используют префиксы в имени домена:
Английские URL:
/
/articles/
/suggestions/
Испанские URL:
/es/
/es/articulos/
/es/sugerencias/
У меня есть переведенные страницы, работающие с модулями Django 1.4 i18n, но он действительно очень хочет поместить все английские URL в / en /. Я пробовал несколько разных способов взлома, включая определение не интернационализированных URL для английской версии:
def build(callback):
return callback('',
url(_(r'^Это приводит к правильному разрешению URL-адресов, но тег {% url%} для обратного разрешения не работает.
Каков наилучший способ создания англоязычных URL без префиксов?
), home.index, name="home"),
url(_(r'^articles/Это приводит к правильному разрешению URL-адресов, но тег {% url%} для обратного разрешения не работает.
Каков наилучший способ создания англоязычных URL без префиксов?
), content.article_list, name='article_list'),
url(_(r'^suggestions/Это приводит к правильному разрешению URL-адресов, но тег {% url%} для обратного разрешения не работает.
Каков наилучший способ создания англоязычных URL без префиксов?
), suggestions.suggestions, name='suggestions'),
)
urlpatterns = build(patterns)
urlpatterns += build(i18n_patterns)
Это приводит к правильному разрешению URL-адресов, но тег {% url%} для обратного разрешения не работает.
Каков наилучший способ создания англоязычных URL без префиксов?