Языки сайта: lang, hreflang и перевод
Зачем:Если сайт на двух языках, поисковикам и программам чтения надо сказать, где какой, а адреса не должны путаться. После урока вы размечаете язык страницы и её переводов и знаете, почему машинный перевод юридических текстов рискован.
15 минут
Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.
lang — атрибут HTML, который сообщает язык страницы или фразы диктору, браузеру и поисковику. hreflang связывает версии страницы на разных языках.
Язык страницы
Страница на русском должна сказать об этом. Атрибут lang у элемента html вы ставили ещё на первом уроке. Зачем он на самом деле?
- Программа чтения с экрана выбирает голос и правила произношения по языку. Русский текст, прочитанный английским голосом, неразборчив.
- Браузер по нему расставляет переносы и кавычки, проверяет орфографию и решает, предлагать ли перевод.
- Поисковик подтверждает по нему язык страницы.
Язык ставят не только странице. Если внутри русского текста есть фраза на другом языке, ей дают собственный lang: <span lang="en">online</span>. Диктор прочитает слово по-английски, а не по буквам. Язык указывают двух- или трёхбуквенным кодом (ru, en, de), при необходимости с регионом (en-GB, pt-BR).
Проверьте себя: зачем помечать lang слово на другом языке в тексте?
Чтобы диктор прочитал его нужным голосом, а не как набор русских букв.
Сайт на двух языках
Если у проекта в брифе два языка, у вас две версии каждой страницы. Три вопроса: как различать адреса, как связать версии и как перевести.
Адреса
Три способа:
- подпапка это
example.ru/ru/иexample.ru/en/: проще всего, всё на одном домене; - поддомен это
en.example.ru: удобно, если версии ведут разные люди; - отдельный домен это
example.ruиexample.com: полезно для рынков разных стран, но всё надо вести дважды.
Выберите один способ и держитесь его. Страницы в обеих версиях удобно называть в соответствии с языком: /ru/uslugi/ и /en/services/. Так адрес и читается, и хорошо понятен поиску.
Связь между версиями
Поисковик сам не поймёт, что две страницы переводы друг друга. Ему говорят об этом в head каждой версии:
<link rel="alternate" hreflang="ru" href="https://example.ru/ru/">
<link rel="alternate" hreflang="en" href="https://example.ru/en/">
<link rel="alternate" hreflang="x-default" href="https://example.ru/"> Правила: адреса полные; связь взаимная (если русская указывает на английскую, английская указывает на русскую, иначе связь игнорируют); страница перечисляет и саму себя; запись x-default показывает, что выбрать, если язык посетителя не подошёл. Это подсказка поисковику, а не команда. Для Google правила описаны в документации, и они общие для разных поисковиков, а для Яндекса загляните в справку Вебмастера.
Поиграйте на схеме: поменяйте язык посетителя и связь.
/ru/
<html lang="ru"> hreflang="ru" (сама) hreflang="en" → /en/ hreflang="x-default" → /ru//en/
<html lang="en"> hreflang="en" (сама) hreflang="ru" → /ru/Посетителю покажут: английскую версию. Язык посетителя английский, и есть взаимная связь: подходит английская версия.
Проверьте себя: что будет с односторонней связью hreflang?
Поисковик её проигнорирует. Взаимность обязательна: обе страницы должны ссылаться друг на друга.
Переключатель
Для людей нужна ссылка на другую версию в шапке. Её подписывают на самом языке: «English», а не «EN» и не флаг. Человек, который знает английский, найдёт её, даже если не понимает остальной страницы. Ссылке дают hreflang="en" и lang="en".
Не перенаправляйте посетителя по его IP или языку браузера насильно: он может быть в поездке, за границей, за чужим компьютером. Предложите, но оставьте выбор.
Перевод
Перевести интерфейс (кнопки, меню) несложно. Перевести настоящий текст куда труднее, и вот что стоит знать.
- Машинный перевод хорош для понимания «о чём это», но не для выпуска. Нужно, чтобы перевод вычитал человек, знающий предмет и язык.
- Юридические и профессиональные тексты это особая зона риска. Один и тот же термин в разных странах значит разное: должность, звание, документ, вид экспертизы не имеют точных соответствий. Одно слово в перевод может изменить обязательства или ввести клиента в заблуждение. Для экспертов, юристов, врачей перевод стоит доверить тому, кто разбирается, и проверить.
- Не всё надо переводить. Имена, названия документов, адреса лучше оставить и объяснить.
И последнее: две версии нужно вести обе. Лучше один язык, который вы поддерживаете, чем два, один из которых устарел.
Практика
Разметьте языки своей страницы. Если по брифу у вас один язык, всё равно сделайте самоссылку и x-default: когда придёт второй язык, структура готова. Если два, добавьте и ссылку на другую версию.
Что было не так с 2014 годом
Сайты на двух языках собирали одной страницей с переключением скриптом, с одним адресом: поисковик видел только одну версию, а диктор читал всё одним голосом. Автоматический перевод через виджет вставляли на страницы с условиями и договорами. Сегодня лучше две полноценные версии с взаимными ссылками и человеческим переводом там, где от слов зависят обязательства.
Практика
Готовлю вашу страницу…
Тест
Вопрос 1 из 6
Карточки
Эти карточки попадут в повторение, когда вы завершите урок.
Что делает lang?
Ответ
Сообщает язык страницы или куска: диктор выбирает произношение, браузер понимает переносы, кавычки и перевод, поисковик знает язык. Ставят у html и у фрагментов на другом языке.
Как связать переводы страницы?
Ответ
В head каждой версии: link rel="alternate" hreflang="ru" href="…" для всех версий, включая себя, плюс x-default. Связь взаимная, адреса полные.
Как различать языки в адресе?
Ответ
Подпапкой (/ru/, /en/), поддоменом (en.example.ru) или отдельным доменом. Выберите один способ и держитесь его.
Чем опасен машинный перевод юридического текста?
Ответ
Термины в разных странах значат разное, одно слово меняет обязательства. Переводить такие тексты нужно человеку, который знает предмет, и его же просить проверить.
Источники
- lang (MDN) CC BY-SA, по-английски
- Declaring language in HTML (W3C) только ссылка, по-английски
- Tell Google about localized versions of your page только ссылка, по-английски
Дальше
Теперь вы знаете: язык страницы, hreflang и многоязычные адреса.