如何拥有多个版本的网站(具有不同类型的内容)?

问题描述 投票:0回答:1

我需要一点帮助。我正在开发一个 Django 项目,它就像一个博客。我已经实现了本地化并添加了几种语言。现在我想为特定地区开发定制内容。

当前设置如下:http://127.0.0.1:8000/en/

我有 3 种语言的一项内容:

content 
             - en (English) - http://127.0.0.1:8000/en/
             - de (German) - http://127.0.0.1:8000/de/
             - ar (Arabic) - http://127.0.0.1:8000/ar/

我使用了 django-parler,因此每篇文章都可以提供所有 3 种语言版本。

现在我想要更多内容 - 比如说特定于特定区域的内容,它看起来像这样:

Global content
             - en (English) - http://127.0.0.1:8000/en/glo/ (content on English for global readers)
             - de (German) - http://127.0.0.1:8000/de/glo/ (content German for global readers)
             - ar (Arabic) - http://127.0.0.1:8000/ar/glo/ (content on Arabic for global readers)

German content
             - en (English) - http://127.0.0.1:8000/en/de/ (content on English for German region)
             - de (German) - http://127.0.0.1:8000/de/de/ (content German for German region)
             - ar (Arabic) - http://127.0.0.1:8000/ar/de/ (content on Arabic for German region)

Middle East content
             - en (English) - http://127.0.0.1:8000/en/me/ (content on English for Middle East readers)
             - de (German) - http://127.0.0.1:8000/de/me/ (content German for Middle East readers)
             - ar (Arabic) - http://127.0.0.1:8000/ar/me/ (content on Arabic for Middle East readers)

我会纳入菜单,我说this语言,我想看到this内容。

模型会做同样的事情,我不认为会有很多豁免。

我注意到 django 网站有相同的方法,如果我们查看链接:

docs.djangoproject.com/en/4.2

en 域名末尾是语言,4.2 是版本,我正在寻找如何在我的网站上实现版本部分。

我找到了 django“sites”框架,但它对我来说没有意义。请你指导我如何做到这一点,有任何教程或有具体名称吗?

提前致谢!

django
1个回答
0
投票

将每个区域内容分隔在不同的 URLConf 模块中。然后将模块包装在正确的

i18n_patterns
下的
path
辅助函数中,以便 Django 为您处理国际化:

from django.conf.urls.i18n import i18n_patterns
from django.urls import include, path


urlpatterns = []
urlpatterns += i18n_patterns(
    path("glo/", include("myapp.global_content_urls"), namespace="global_content"),
    path("de/", include("myapp.german_content_urls"), namespace="german_content"),
    path("me/", include("myapp.middle_eastern_content_urls"), namespace="middle_eastern_content")
)

确保将每个内容放入正确的 URLConf 模块中。请参阅 URL 命名空间

© www.soinside.com 2019 - 2024. All rights reserved.