Переключение языка сайта
Поскольку контент сайта раздается на нескольких языках, необходимо предоставить пользователям возможность переключать язык сайта.
Вы добавите селектор языка на сайт. Селектор языка будет состоять из списка имеющихся языков, которые будут отображаться с помощью ссылок, кроме текущего языка, который будет отображаться строкой с подчёркиванием.
Для этого откройте файл шаблона base.html и отредактируйте следующим образом:
<body hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'>
<div class="container">
<div class="row text-end mt-1">
<div class="col">
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
{% if language.code == LANGUAGE_CODE %}
<u>{{ language.name_local }}</u>
{% else %}
<a href="/{{ language.code }}/">{{ language.name_local }}</a>
{% endif %}
{% endfor %}
</div>
</div>
<div class="row mt-5">
<div class="col">
<!-- Форма для добавления новой книги -->
А в файле base.css отредактируйте класс body, закомментируйте или удалите строку свойства padding-top:
body {
/* padding-top: 50px; */
background-color: rgb(246, 246, 246);
}
Вот как формируется селектор языка:
- С помощью тега
{% load i18n %}загружаются теги интернационализации. - При помощи тега
{% get_current_language %}берется текущий язык. - С помощью тега
{% get_available_languages %}извлекаются языки, определенные в настроечном параметреLANGUAGES. - Посредством тега
{% get_language_info_list %}обеспечивается легкий доступ к атрибутам языка. - Для отображения всех имеющихся языков создается HTML-список, и к текущему активному языку добавляется тег подчёркивания, а к доступным для переключения добавляется тег ссылки с кодом соответствующего языка.
В исходном коде, связанном с выбором языка, использованы предоставленные в i18n шаблонные теги, созданные на основе языков, имеющихся в настройках проекта.
Теперь пройдите по URL-адресу http://127.0.0.1:8000/ru/ в своем браузере и посмотрите. Вы должны увидеть селектор языка в правом верхнем углу сайта, как показано ниже:
Переключим язык: