From 1e5453f62d191f633e6c68933c51746513a10496 Mon Sep 17 00:00:00 2001 From: Boris Date: Tue, 31 Mar 2026 08:45:33 +0300 Subject: [PATCH] Fix language toggle: use body class instead of inline styles - EN mode no longer shows Russian subtitle under mineral name - RU mode now correctly reveals all lang-ru elements via CSS body.mode-ru rules - Subtitle in RU mode shows English name as reference below Russian heading Co-Authored-By: Claude Sonnet 4.6 --- dailystone/templates/dailystone/stone.html | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/dailystone/templates/dailystone/stone.html b/dailystone/templates/dailystone/stone.html index 3ab20fc..2750abd 100644 --- a/dailystone/templates/dailystone/stone.html +++ b/dailystone/templates/dailystone/stone.html @@ -243,6 +243,9 @@ /* Language content */ .lang-ru { display: none; } + body.mode-ru .lang-en { display: none; } + body.mode-ru span.lang-ru { display: inline; } + body.mode-ru div.lang-ru { display: block; } .mineral-name-ru { font-size: 1.1rem; @@ -492,10 +495,7 @@ {% if mineral.name_ru %} -
- {{ mineral.name_ru }} - {{ mineral.name }} -
+
{{ mineral.name }}
{% endif %} {% if mineral.formula %}
{{ mineral.formula|chem_formula }}
{% endif %}
{{ today|date:"F j, Y" }}
@@ -677,15 +677,12 @@ } function setLang(lang) { - var en = document.querySelectorAll('.lang-en'); - var ru = document.querySelectorAll('.lang-ru'); - for (var i = 0; i < en.length; i++) en[i].style.display = lang === 'en' ? '' : 'none'; - for (var i = 0; i < ru.length; i++) ru[i].style.display = lang === 'ru' ? '' : 'none'; + document.body.classList.toggle('mode-ru', lang === 'ru'); var btns = document.querySelectorAll('.lang-toggle button'); for (var i = 0; i < btns.length; i++) { btns[i].classList.toggle('active', btns[i].getAttribute('data-lang') === lang); } - document.documentElement.lang = lang; + document.documentElement.lang = lang === 'ru' ? 'ru' : 'en'; try { localStorage.setItem('dailystone-lang', lang); } catch(e) {} }