Перевод Django для uz-вместо cyrl возвращает uz
Я настроил свои языки django следующим образом
import os
from django.utils.translation import gettext_lazy as \_
from config.settings.base import BASE_DIR
LANGUAGE_CODE = "en"
USE_I18N = True
LANGUAGES = (
("uz", _("Uzbek")),
("uz-cyrl", _("Cyrillic")),
("ru", _("Russian")),
("en", _("English")),
("ar", _("Arabic")),
)
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
Я перевел тексты во всех po-файлах и скомпилировал их. На локальном сервере запуска он работает с Accept-Language: uz-cyrl должным образом, но через docker-compose он возвращает перевод uz, в чем может быть причина?
Я использовал разные базовые образы docker, такие как python3.11-slim, сам python3.11, но это не сработало.
Наконец-то я нашел причину. Когда я выполняю
python manage.py makemessages -l uz-cyrl
Это выглядит как
неверный языковой стандарт uz-cyrl, вы имели в виду uz_CYrl?
итак, я выполняю
python manage.py makemessages -l uz_CYrl
и он создал папку uz_CYrl внутри папки locale, она работает в Windows и Mac локально, но в docker-compose запускаемый проект возвращает uz перевод вместо uz-cyrl всегда.
Когда я выполняю команду makemessages внутри контейнера, и она вызывает разные
неверный языковой стандарт uz-cyrl, вы имели в виду uz_Cyrl?
Итак, я изменил название папки с uz_CYrl на uz_Cyrl, и это работает как локально, так и через docker-compose.
Итак, я понимаю, что uz-cyrперевод l .po и .mo файлы должны находиться в папке uz_Cyrl, а не в папке uz_CYrl.