Интернационализация/перевод Django gettext не работает на производстве в облаке, запущенном с помощью docker

Я работаю над сайтом, используя Django + gettext + docker и размещая его на облачном хостинге, мой dev - среда windows 11. (Я прошел через многое, пока мне не удалось развернуть мою сборку). Но что-то забавное произошло, когда я пытаюсь настроить мультиязычную поддержку. Мой конфиг с китайским переводом работает на локальной сборке, но не работает на облачном хостинге google.

Я использую Django==5.0.2 и python-gettext==5.0. Я следовал некоторым учебникам Youtube и сделал свою локализацию. Работает отлично на моем локальном, но не работает в облачном google run. Я использую

  # 5. Localization step to make messages
  - name: gcr.io/google-appengine/exec-wrapper
    args:
      - "-i"
      - "$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA"
      - "-s"
      - "${PROJECT_ID}:${_DEPLOY_REGION}:${_DB_INSTANCE}"
      - "-e"
      - "SETTINGS_NAME=${_SECRET_SETTINGS_NAME}"
      - "-e"
      - "DJANGO_SETTINGS_MODULE=lt3aelaw.settings.production"
      - "--"
      - "python"
      - "manage.py"
      - "makemessages"
      - "-l"
      - "zh_HAns"
    id: Localization make messages

  # 5.1 Localization step to make messages for de
  - name: gcr.io/google-appengine/exec-wrapper
    args:
      - "-i"
      - "$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA"
      - "-s"
      - "${PROJECT_ID}:${_DEPLOY_REGION}:${_DB_INSTANCE}"
      - "-e"
      - "SETTINGS_NAME=${_SECRET_SETTINGS_NAME}"
      - "-e"
      - "DJANGO_SETTINGS_MODULE=lt3aelaw.settings.production"
      - "--"
      - "python"
      - "manage.py"
      - "makemessages"
      - "-l"
      - "de"
    id: Localization make messages for de

  # 6. Localization step to compile messages
  - name: gcr.io/google-appengine/exec-wrapper
    args:
      - "-i"
      - "$_GCR_HOSTNAME/$PROJECT_ID/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA"
      - "-s"
      - "${PROJECT_ID}:${_DEPLOY_REGION}:${_DB_INSTANCE}"
      - "-e"
      - "SETTINGS_NAME=${_SECRET_SETTINGS_NAME}"
      - "-e"
      - "DJANGO_SETTINGS_MODULE=lt3aelaw.settings.production"
      - "--"
      - "python"
      - "manage.py"
      - "compilemessages"
    id: Localization compile messages

Я знаю, что код языка для китайского должен быть таким, как показано ниже: Упрощенный китайский: http://your-domain.com/zh-Hans/. Традиционный китайский: http://your-domain.com/zh-Hant/

Я также знаю, что есть некоторые ленивые/нечеткие проблемы, поэтому я использую такой код:

from django.utils.translation import activate, gettext as _
def index(request):
    showcaseHeader = _('Please contact us to get a free quote.')
    return render(request, 'pages/index.html', {'showcaseHeader':showcaseHeader})

Я также знаю, что существует некоторая проблема с путями к папкам, связанная с нижним и верхним регистром для zh_HAns, как указано ниже: gettext translation not working on production system

Вот в чем сложность: На моем локальном компьютере все работает нормально: http://127.0.0.1:8000/zh-hans/ имеет все китайские иероглифы, которые мне нужны. Однако на моем облаке Google https://myproject.run.app/zh-hans/ выдает мне страницу, на которой только "Home" переведено на "首页" (в файле django.po у меня "Home" переведено на "主页"), а все остальное на английском. Самое смешное, что я поместил те же самые файлы django.po и django.mo в раздел de (немецкий) и все отображается просто находит. Так что в итоге у меня получилось https://myproject.run.app/de/ для размещения моих китайских переводов. Я не могу быть единственным, у кого такая проблема, верно?

Вернуться на верх