Изменение языка по умолчанию 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>>:

enter image description here

Вот как я использую перевод в своих шаблонах:

{% 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')
)
Вернуться на верх