Как иметь несколько версий сайта (с разным типом контента)?
Мне нужна небольшая помощь. Я работаю над проектом на 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.