Фикс: контент не грузился после i18n (проверка плейсхолдера по тексту)
JS определял плейсхолдер сравнением с захардкоженным «Завантаження...», а
текст загрузчика стал переводиться ({% trans %}) — из-за чего в ru/en
контент не подгружался (и при обычной загрузке, и после смены языка).
Теперь плейсхолдер определяется по #page-loader (язык-независимо).
Переключатель языка возвращает на текущую страницу (next=pathname).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user