Ответ
Для интернационализации (i18n) строк в шаблонах Django используются теги `{% trans %}` и `{% blocktrans %}`. Перед их использованием необходимо загрузить библиотеку тегов: `{% load i18n %}`.
### 1. Простые строки: `{% trans %}`
Используется для перевода статических строк без переменных.
```django
{% load i18n %}
`, например, `makemessages -l de` для немецкого языка.
3. **Заполните `.po` файлы**: В директории `locale/de/LC_MESSAGES/django.po` появятся строки для перевода.
```po
#: templates/base.html:5
msgid "Welcome to our site!"
msgstr "Willkommen auf unserer Seite!" # <-- Ваш перевод
```
4. **Скомпилируйте переводы**: Выполните `python manage.py compilemessages`, чтобы создать скомпилированные `.mo` файлы, которые Django использует в работе.
{% trans "Welcome to our site!" %}
``` ### 2. Строки с переменными и HTML: `{% blocktrans %}` Этот тег позволяет вставлять переменные и использовать множественные формы (плюрализацию). **С переменной:** ```django {% load i18n %} {% blocktrans with username=user.get_full_name %}Hello, {{ username }}!
{% endblocktrans %} ``` **С плюрализацией:** ```django {% load i18n %} {% blocktrans count counter=items|length %} Found {{ counter }} item. {% plural %} Found {{ counter }} items. {% endblocktrans %} ``` ### Процесс настройки 1. **Настройте `settings.py`**: Убедитесь, что `django.middleware.locale.LocaleMiddleware` добавлен в `MIDDLEWARE`. 2. **Создайте файлы перевода**: Выполните команду `python manage.py makemessages -l