Интернационализация языка Django - я не могу заставить работать переводы - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь выяснить, как заставить различные языки, основанные на выборе пользователя, показывать в 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

Очевидно, что это не то, какпроверить, правильно ли я настроил.Как мне проверить, правильно ли работают переводы?

1 Ответ

0 голосов
/ 04 октября 2018

Ссылаясь на это , вы можете использовать тег шаблона language:

{% language 'en' %}
     {% get_current_language as LANGUAGE_CODE %}
     <!-- Current language: {{ LANGUAGE_CODE }} -->
     <h1>{% trans "Welcome to my website" %}</h1>
{% endlanguage %}

{% language 'el' %}
     {% get_current_language as LANGUAGE_CODE %}
     <!-- Current language: {{ LANGUAGE_CODE }} -->
     <h1>{% trans "Welcome to my website" %}</h1>
{% endlanguage %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...