Python 有没有可能拥有一个多语言的django CMS站点而不在URL中使用语言代码?
由于django CMS还使用会话和cookie来跟踪用户的首选语言,因此在django CMS中是否可以不使用URL中的语言代码而拥有多语言内容Python 有没有可能拥有一个多语言的django CMS站点而不在URL中使用语言代码?,python,django,internationalization,django-cms,Python,Django,Internationalization,Django Cms,由于django CMS还使用会话和cookie来跟踪用户的首选语言,因此在django CMS中是否可以不使用URL中的语言代码而拥有多语言内容 如果无法实现,限制的原因是什么 目前,您所需要的是不可能的 如果您在URL中没有代码(it、en或任何内容),请将URL模式注册更改为: urlpatterns = i18n_patterns('', url(r'^', include('cms.urls')), ) 到 您还将无法访问内容的多个语言版本 这样做只适用于单一语言站点 有关更
如果无法实现,限制的原因是什么 目前,您所需要的是不可能的 如果您在URL中没有代码(
it
、en
或任何内容),请将URL模式注册更改为:
urlpatterns = i18n_patterns('',
url(r'^', include('cms.urls')),
)
到
您还将无法访问内容的多个语言版本
这样做只适用于单一语言站点
有关更多信息,请参阅
的确,CMS也注意到了会话和cookie,但这些实际上重定向到了正确的语言代码——如果丢失了这些代码,您将永远无法重定向到所需的语言
不幸的是,您必须在单一语言站点或接受包含语言段塞的URL之间进行选择。当然,您可以共享没有语言slug的URL,在这种情况下,系统将查找所需的语言,然后当然会重定向到包含代码的URL
至于原因,内容管理系统的一个基本原则是,此类公共URL应该可靠地指向相同的内容,而不是潜在的意外内容
也许有理由允许不同的行为,但目前情况就是这样。这是django功能还是django cms功能?我的理解是,
i18n_patterns()
函数作为django的一部分,在url中创建语言代码。django CMS使用django语言框架,特别是语言前缀,在加载页面时加载正确的语言;因此,它是使用底层django特性的django CMS特性
urlpatterns = patterns('',
url(r'^', include('cms.urls')),
)