Django CMS多区域多语言子网站
我们必须创建多地区和多语言的网站。例如:Django CMS多区域多语言子网站,django,multilingual,django-cms,django-sites,Django,Multilingual,Django Cms,Django Sites,我们必须创建多地区和多语言的网站。例如: 日本英语 日本的日语 澳大利亚英语 对于多种语言,django cms和i18n_模式处理得非常好。但当我尝试使用django sites框架添加多区域支持时,它并没有像预期的那样起作用:(.我添加了子域为mysite.com/au、mysite.com/vn、mysite.com/us的站点。在django cms管理页面中,我已经向站点添加了内容。但现在我不知道如何配置url以匹配该站点 我想要http://mysite.com///但是i18n
- 日本英语
- 日本的日语
- 澳大利亚英语
http://mysite.com///
但是i18n\u模式似乎像http://mysite.com///
。如何更改此设置
请提供帮助我不确定您的URL方案有多灵活,但这个如何: 使用标准的django CMS i18n URL规则(这样您就可以得到yoursite.com/ja/和yoursite.com/en/) 接下来创建两个页面:“au”和“jp”。将主页重定向到这两个页面之一(或者为此编写一些更智能的逻辑,例如在中间件中)。现在将您的区域内容保留在这两个子树中
如果您不想,请不要将“au”子树中的页面翻译成日语。您可以通过编写自己的
i18n_模式副本来实现
因此,根据定义:
URL模式中的语言前缀
i18n_patterns(*urls, prefix_default_language=True)[source]
此函数可在根URLconf中使用,Django将
自动将当前活动语言代码前置到所有URL
i18n_patterns()中定义的模式
这里是一个在模板内部制作的示例,但在实现中需要相同的变量/对象
在模板中反转
i18n_patterns(*urls, prefix_default_language=True)[source]
如果本地化URL在模板中被反转,它们总是使用
当前语言。要链接到另一种语言的URL,请使用
语言模板标记。它在所附的
模板部分:
{% load i18n %}
{% get_available_languages as languages %}
{% trans "View this category in:" %}
{% for lang_code, lang_name in languages %}
{% language lang_code %}
<a href="{% url 'category' slug=category.slug %}">{{ lang_name }}</a>
{% endlanguage %}
{% endfor %}
{%loadi18n%}
{%get_可用语言为语言%}
{%trans“在:%”中查看此类别
{语言代码为%,语言名称为%}
{%language_code%}
{%endlanguage%}
{%endfor%}
language标记期望语言代码作为唯一的参数
参考:您的解决方案似乎更容易实施,但我们必须将url更改为/并且这与他们的要求不符。感谢您的解决方案。因此,更改该要求不是一个选项?这两个地区有何区别?这是客户的要求:(我想我必须编写一个中间件来处理这个问题。无论如何,谢谢你不要忘记中间件是不够的。你还需要像i18n_模式这样的东西来实现反向工作。祝你好运!是的,中间件和自定义i18n_模式也一样:(