简体   繁体   English

blocktranslate 中的变量在 makemessages 时未翻译

[英]variable inside blocktranslate not translated when makemessages

I make a simple template like this我做了一个像这样的简单模板

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

with greeting equals hello . with greeting等于hello
I have added the following MIDDLEWARE , and LANGUAGE_CODE = 'vi' .我添加了以下MIDDLEWARELANGUAGE_CODE = 'vi' Everything else is left as default.其他一切都保留为默认值。

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

and

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')),
]

After running django-admin makemessages -l vi , the .po file is created运行django-admin makemessages -l vi后,创建.po文件

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

I added我加了

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

or或者

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

and then run django-admin compilemessages but "hello" shown up instead of "chào" or "hi".然后运行django-admin compilemessages但显示的是“hello”而不是“chào”或“hi”。 Why I cannot translate the variable为什么我不能翻译变量

I tries it with tag translate , and it works if I send variable greeting as "hello", whereas for blocktranslate I need _("hello")我用标签translate尝试它,如果我将变量greeting发送为“hello”,它就可以工作,而对于blocktranslate我需要_("hello")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM