Команда Django makemessages не генерирует строку, помеченную для перевода, для файлов в каталоге templates
У меня проект на Django==2.2.12
и это часть моих настроек:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [os.path.join(BASE_DIR, "templates")],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
"django.template.context_processors.static",
],
},
},
]
LANGUAGE_CODE = "pl"
TIME_ZONE = "Europe/Warsaw"
USE_I18N = True
USE_L10N = True
USE_TZ = False
LANGUAGES = (
('pl', gettext('Polish')),
('en', gettext('English')),
)
Когда я выполняю:
django-admin makemessages --locale=en
Из файлов .py он генерирует файлы .po со строкой для перевода в каталоге locale, но полностью пропускает файлы .txt, которые находятся в каталоге моих шаблонов. Например, он не генерирует строку для перевода для моего файла text.txt со следующим содержимым:
{% load i18n %}
{% blocktranslate %}
string to translate
{% endblocktranslate %}
- Обязательно используйте
{%trans 'your string %}
- Используйте эту команду для обновления
.po
файлов:python manage.py makemessages -l ar --no-wrap --no-location
- Удалите
#fuzzy
, если он находится выше того, что вы хотите перевести - Выполнить
python manage.py compilemessages
Надеюсь, это поможет!