Изменение языка по умолчанию Django
Я разрабатывал веб-приложение на английском языке, а теперь хочу изменить язык по умолчанию на немецкий.
Я пробовал изменить код языка и добавить каталог locale со всеми переводами, но Django по-прежнему показывает все на английском. Я также хочу, чтобы все названия моих таблиц были на немецком языке вместе с содержимым в шаблонах.
Я также пробовал Locale Middleware и также this repo для custom middleware, но это все еще не работает.
Не говоря уже о том, что Django меняет язык по умолчанию в панели администратора, но названия моих полей и таблиц остаются английскими.
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'language.DefaultLanguageMiddleware',
# 'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
LANGUAGE_CODE = 'de'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
LOCALE_PATH = (
os.path.join(BASE_DIR, 'locale')
)
Вот мой каталог локали <2>>:
Вот как я использую перевод в своих шаблонах:
{% load i18n static %}
{% translate "Single User" %}
Вот как я определил свои модели:
from django.utils.translation import gettext_lazy as _
class Facility(models.Model):
name = models.CharField(_('Name'), max_length=100, null=True, blank=True)
class Meta:
verbose_name_plural = _('Facilities')
Оказывается, все правильно, и единственное, что испортило ситуацию - это опечатка в LOCALE_PATHS.
settings.py:
LOCALE_PATHS = ( # notice the S which was forgotten
os.path.join(BASE_DIR, 'locale')
)