Как иметь несколько версий сайта (с разным типом контента)?

Мне нужна небольшая помощь. Я работаю над проектом на 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)

Я бы включил в меню, я говорю на этом языке и хочу видеть это содержание.

Модели будут делать то же самое, не думаю, что будет много исключений.

Я заметил, что на сайте 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.

Вернуться на верх