我需要一点帮助。我正在开发一个 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”框架,但它对我来说没有意义。请你指导我如何做到这一点,有任何教程或有具体名称吗?
提前致谢!
将每个区域内容分隔在不同的 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 命名空间。