Я пытаюсь выяснить, как заставить различные языки, основанные на выборе пользователя, показывать в Django.Я не знаю, что мне не хватает, поэтому мне интересно, может кто-нибудь объяснить, где я ошибся.
Это мой urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^i18n/', include('django.conf.urls.i18n')),
]
urlpatterns += i18n_patterns(
url(r'^', TemplateView.as_view(template_name="lang_test/index.html"))
)
В settings.py Я добавил:
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
]
from django.utils.translation import ugettext_lazy as _
LANGUAGES = (
('en', _('English')),
('fr', _('French')),
('el', _('Greek')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
USE_I18N = True
USE_L10N = True
USE_TZ = True
Я запустил
manage.py makemessages -fr
manage.py makemessages -el
, и, добавив сообщения, я запустил
manage.py compilemessages
Затем я получил этот простой шаблон, который я ожидал увидеть на трех разных языках, потому что я установил язык.
{% load i18n %}
<html>
<head>
</head>
<body>
{{ LANGUAGE_CODE|language_name }}
<h1>{% trans "Welcome to my website" %}</h1>
{% with 'fr' as LANGUAGE_CODE %}
{{ LANGUAGE_CODE|language_name }}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<h1>{% trans "Welcome to my website" %}</h1>
{% endwith %}
{% with 'el' as LANGUAGE_CODE %}
{{ LANGUAGE_CODE|language_name }}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<h1>{% trans "Welcome to my website" %}</h1>
{% endwith %}
</body>
</html>
The output is
English
Welcome to my website
French
Welcome to my website
Greek
Welcome to my website
Очевидно, что это не то, какпроверить, правильно ли я настроил.Как мне проверить, правильно ли работают переводы?