django makemessages时未翻译块内的变量translate

fdbelqdn  于 2023-01-31  发布在  Go
关注(0)|答案(1)|浏览(109)

我做了一个简单的模板

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

其中greeting等于hello
我添加了以下MIDDLEWARELANGUAGE_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,但是显示的是“hello”而不是“chào”或“hi”。为什么我不能翻译变量

q0qdq0h2

q0qdq0h21#

我尝试使用标记translate,如果将变量greeting作为“hello”发送,它就可以工作,而对于blocktranslate,我需要_("hello")

相关问题