Фикс: контент не грузился после i18n (проверка плейсхолдера по тексту)

JS определял плейсхолдер сравнением с захардкоженным «Завантаження...», а
текст загрузчика стал переводиться ({% trans %}) — из-за чего в ru/en
контент не подгружался (и при обычной загрузке, и после смены языка).
Теперь плейсхолдер определяется по #page-loader (язык-независимо).
Переключатель языка возвращает на текущую страницу (next=pathname).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 11:58:03 +03:00
parent 31f597e84a
commit 76f3bf3584
+3 -2
View File
@@ -508,7 +508,7 @@
<form action="{% url 'set_language' %}" method="post" style="margin:0;">
{% csrf_token %}
<input type="hidden" name="next" value="/">
<select name="language" onchange="this.form.submit()" title="{% trans 'Язык' %}"
<select name="language" onchange="this.form.next.value = window.location.pathname; this.form.submit();" title="{% trans 'Язык' %}"
class="input" style="height:2rem; padding:0 0.5rem; font-size:0.75rem; width:auto; cursor:pointer;">
{% for code, name in LANGUAGES %}
<option value="{{ code }}" {% if code == CUR_LANG %}selected{% endif %}>{{ name }}</option>
@@ -703,7 +703,8 @@
document.addEventListener('DOMContentLoaded', function() {
const mainContent = document.getElementById('main-content');
const isPlaceholder = mainContent.textContent.trim() === 'Завантаження...';
// Плейсхолдер определяем по элементу, а не по тексту (текст переводится)
const isPlaceholder = !!mainContent.querySelector('#page-loader');
// Если сервер не отдал страницу — грузим по URL
if (isPlaceholder) {