Можно ли иметь многоязычный сайт Django CMS без использования языковых кодов в URL?

Возможно ли иметь многоязычный контент в django CMS без использования языкового кода в URL-адресах, поскольку django CMS также использует сеанс и файлы cookie для отслеживания предпочтительного языка пользователя?

Если это не может быть достигнуто, каковы причины ограничения?

1 ответ

Решение

В настоящее время то, что вам требуется, невозможно.

Если обойтись без кода (it, en или что-то еще) в URL, изменив регистрацию шаблона URL с:

urlpatterns = i18n_patterns('',
    url(r'^', include('cms.urls')),
)

в

 urlpatterns = patterns('',
    url(r'^', include('cms.urls')),
)

Вы также потеряете доступ к многоязычным версиям контента.

Это подходит только для одноязычного сайта.

См. Документацию по интернационализации django CMS.

Это правда, что CMS также принимает к сведению сеанс и cookie, но они все равно перенаправляют на правильный код языка - потеряйте это, и вы никогда не будете перенаправлены на нужный язык.

К сожалению, вам придется выбирать между сайтом на одном языке или принимать URL-адреса, содержащие языковые блоки. Вы, конечно, можете обмениваться URL-адресами, которые не имеют языковой фрагмент, и в этом случае система будет использовать различные подсказки, чтобы найти нужный язык, а затем, конечно, будет перенаправлять на URL-адрес, содержащий код.

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

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

Другие вопросы по тегам