Переменная внутри blocktranslate не отображается при создании сообщений

Я делаю простой шаблон следующим образом

<button class="btn">{% blocktranslate %}{{ greeting }} Quy!{% endblocktranslate %}</button>

с greeting равно hello.
Я добавил следующие MIDDLEWARE, и LANGUAGE_CODE = 'vi'. Все остальное оставлено по умолчанию.

    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',

и

LANGUAGE_CODE = "vi"

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.1/howto/static-files/

STATIC_URL = 'static/'

# Default primary key field type
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

LANGUAGES = [
    ('vi', _('Vietnamese')),
    ('en', _('English')),
]

После выполнения django-admin makemessages -l vi создается файл .po

msgid "%(greeting)s Quy!"
msgstr ""

Я добавил

# vi/LC_MESSAGES/django.po
msgid "hello"
msgstr "chào"

или

# en/LC_MESSAGES/django.po
msgid "hello"
msgstr "hi"

и затем запускаю django-admin compilemessages, но вместо "chào" или "hi" появляется "hello". Почему я не могу перевести переменную

?

Я пробую с тегом translate, и он работает, если я посылаю переменную greeting как "hello", тогда как для blocktranslate мне нужно _("hello")

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