Как реализовывается мультиязычность в Django
Python
Senior
Без компании
Как реализовывается мультиязычность в Django
Ответы
В Django мультиязычность реализуется через встроенную систему интернационализации (i18n). Основные шаги:
- **Настройки**:
```
# settings.py
LANGUAGE_CODE = 'en'
USE_I18N = True
LANGUAGES = [
('en', 'English'),
('es', 'Spanish'),
]
MIDDLEWARE += ['django.middleware.locale.LocaleMiddleware']
```
- **Разметка текста**:
```
from django.utils.translation import gettext as _
text = _("Hello World")
```
- **Шаблоны**:
```
{% load i18n %}
<h1>{% trans "Welcome" %}</h1>
```
- **Создание переводов**:
```
django-admin makemessages -l es
django-admin compilemessages
```
- **URL-префиксы**:
```
urlpatterns = [
path('i18n/', include('django.conf.urls.i18n')),
path('<language>/', include('myapp.urls')),
]
```
Переводы хранятся в `.po` файлах в `locale/` директориях. Для переключения языка можно использовать `set_language` view или middleware.