Django modeltranslation не работает должным образом на шаблонах
Я установил и настроил django-modeltranslation
для проекта в соответствии с документацией следующим образом:
urls.py
from django.conf.urls.i18n import set_language
from django.conf.urls.i18n import i18n_patterns
urlpatterns = i18n_patterns(
...
path('set_language/', set_language, name='set_language'),
)
settings.py
from django.utils.translation import gettext_lazy as _
INSTALLED_APPS = [
'modeltranslation',
...
]
MIDDLEWARE = [
...
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
TIME_ZONE = 'CET'
LANGUAGE_CODE = 'en'
LANGUAGES = [
('en', _('English')),
('cz', _('Czech')),
]
LOCALE_PATHS = [
BASE_DIR / 'Project/locale/',
]
USE_I18N = True
Переключатель языка домашней страницы
<form id="languageForm" action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<input name="next" type="hidden" value="{{ request.get_full_path|slice:'3:' }}" />
<input id="languageInput" name="language" type="hidden" value="" />
</form>
onclick="setLanguage('en')"
onclick="setLanguage('cz')"
function setLanguage(lang) {
document.getElementById('languageInput').value = lang;
document.getElementById('languageForm').submit();
}
В шаблонах .html
{% load i18n %}
...
{% trans "Text" %}
...
Я собрал строки для перевода, используя:
python manage.py makemessages -l cz
Затем перевели их в файл локали django.po
и скомпилировали, используя:
python manage.py compilemessages
Теперь при запуске проекта и переключении языка на cz
отображается только одна переведенная строка и строка даты.
Спасибо за помощь, и я надеюсь, что предоставил все необходимое.
Я попробовал настроить django-modeltranslation, используя его документацию, как я уже говорил ранее.