Описание
На всех страницах сайта в теге <html> жёстко прописан lang="en". При переключении языка через параметр ?lang=ru, ?lang=ar или другие, значение атрибута lang не обновляется. Это приводит к тому, что браузеры, скринридеры и инструменты перевода некорректно определяют язык контента.
Пример:
- Исходный код:
<html dir="ltr" lang="en" …>
- После перехода на
?lang=ru код остаётся тем же — lang="en".
Почему это важно:
- Скринридеры используют
lang для правильного произношения текста (особенно для арабского или русского).
- Браузерные переводчики (Google Translate) могут предлагать перевод, когда он не нужен, или не предлагать, когда нужен.
- Поисковые системы могут неправильно индексировать страницу для соответствующего региона.
Шаги для воспроизведения
- Открыть любую страницу сайта, например, главную:
https://apn.tech/.
- Нажать на ссылку переключения языка, например, «Русский» (ведёт на
/lang?to=ru&back=/).
- После загрузки страницы открыть исходный код (
Ctrl+U) и посмотреть атрибут lang в теге <html> — он всё ещё "en".
- Повторить для арабского (
?lang=ar) — результат тот же.
Ожидаемое поведение
Атрибут lang должен динамически изменяться в соответствии с выбранным языком:
lang="ru" для русского,
lang="ar" для арабского,
lang="zh" для китайского и т.д.
Фактическое поведение
lang всегда "en", независимо от выбранного языка.
Описание
На всех страницах сайта в теге
<html>жёстко прописанlang="en". При переключении языка через параметр?lang=ru,?lang=arили другие, значение атрибутаlangне обновляется. Это приводит к тому, что браузеры, скринридеры и инструменты перевода некорректно определяют язык контента.Пример:
<html dir="ltr" lang="en" …>?lang=ruкод остаётся тем же —lang="en".Почему это важно:
langдля правильного произношения текста (особенно для арабского или русского).Шаги для воспроизведения
https://apn.tech/./lang?to=ru&back=/).Ctrl+U) и посмотреть атрибутlangв теге<html>— он всё ещё"en".?lang=ar) — результат тот же.Ожидаемое поведение
Атрибут
langдолжен динамически изменяться в соответствии с выбранным языком:lang="ru"для русского,lang="ar"для арабского,lang="zh"для китайского и т.д.Фактическое поведение
langвсегда"en", независимо от выбранного языка.