Можно ли иметь многоязычный сайт 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 такого типа должен надежно указывать на один и тот же контент, а не на потенциально неожиданный контент.
Может быть, есть основания для учета другого поведения, но на данный момент так обстоят дела.