У меня есть приложение django, где строки кода и шаблона изначально были на польском языке. Теперь я хочу добавить английский язык и установить его по умолчанию .
Я использую шаблоны localeMiddleware и i18n.
Когда в settings.py у меня есть:
LANGUAGE_CODE = 'pl'
LANGUAGES = (
('pl', _('Polski')),
('en', _('English')),
)
Если работает нормально - мои URL автоматически префиксы с 'pl', когда я изменяю его на 'en' сайт переводится на английский.
Но, поскольку я хочу, чтобы моим языком по умолчанию был английский (чтобы посетители из Китая / где бы он ни видел веб-сайт на английском языке), я должен изменить LANGUAGE_CODE
на 'en'
.
Однако, если я это сделаю, веб-сайт будет на английском языке, префикс url по умолчанию будет «en», но даже когда я изменю его на «pl», он игнорируется, а веб-сайт все еще на английском.
Я знаю, что язык по умолчанию должен совпадать с языком «источника», как в коде и шаблонах - но, может быть, есть другое / лучшее решение, чем замена всех строк во всех моих представлениях и шаблонах?
Мое промежуточное ПО:
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'core.middleware.SubdomainMiddleware',
'corsheaders.middleware.CorsMiddleware',
'simple_history.middleware.HistoryRequestMiddleware',
'django.middleware.security.SecurityMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
мои urls.py:
urlpatterns = i18n_patterns(
path('admin/', admin.site.urls),
# path('api/', include('api.urls', namespace='api')),
path('backoffice/', decorator_include([login_required, ], (backoffice_urlpatterns, 'backoffice'))),
path('', include('web.urls', namespace='web')),
prefix_default_language=True
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)