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 без префиксов?

Ответы на вопрос(3)

Ваш ответ на вопрос