Выбор языка пользователем

Поскольку мы обслуживаем содержимое, доступное на нескольких языках, мы должны позволить пользователям переключаться на любой язык. Мы собираемся добавить селектор языка на наш сайт. Селектор языка будет состоять из списка доступных языков, отображаемых с помощью ссылок.

Откройте шаблон shop/base.html и найдите в нем следующие строки:

<div id="header">
    <a href="/" class="logo">{% trans "My shop" %}</a>
</div>

Замените их следующим кодом:

<div id="header">
    <a href="/" class="logo">{% trans "My shop" %}</a>
    {% get_current_language as LANGUAGE_CODE %}
    {% get_available_languages as LANGUAGES %}
    {% get_language_info_list for LANGUAGES as languages %}
    <div class="languages">
        <p>{% trans "Language" %}:</p>
        <ul class="languages">
            {% for language in languages %}
                <li>
                    <a href="/{{ language.code }}/" {% if language.code == LANGUAGE_CODE %} class="selected"{% endif %}>
                        {{ language.name_local }}
                    </a>
                </li>
            {% endfor %}
        </ul>
    </div>
</div>

Вот как мы создаем селектор языка:

Сначала мы загружаем теги мультиязычности, используя {% load i18n %}

Для извлечения текущего языка используется тег {% get_current_language %}.

Мы получаем языки, определенные в параметре LANGUAGES, используя тег шаблона {% get_available_languages %}.

Для обеспечения простого доступа к атрибутам языка используется тег {% get_language_info_list %}.

Мы строим HTML список для отображения всех доступных языков и добавляем выбранный атрибут класса к текущему активному языку.

Мы используем теги шаблонов, предоставленные i18n на основе языков, доступных в настройках проекта. Теперь откройте http://127.0.0.1:8000/ . Селектор языка в правой верхней части страницы должен выглядеть следующим образом:

Теперь пользователи могут легко переключать языки.

results matching ""

    No results matching ""