Как указать язык сайта по ссылке?

Ссылка представляет собой обычный текст, ведущий на другой сайт. По тексту ссылки и её виду обычно нельзя определить, на каком языке откроется веб-страница. Даже адрес сайта не является помощником в этом вопросе — habr.com может вести на русскоязычный ресурс.

Для указания языка ресурса по ссылке к элементу <a> добавляется атрибут hreflang с кодом языка. Однако браузеры никак не используют этот атрибут, в итоге, ссылка с hreflang и без него выглядит совершенно одинаково. Тем не менее, атрибут hreflang можно использовать для стилизации ссылок по его значению. К примеру, селектор a[hreflang="ru"] выберет ссылки на русскоязычные ресурсы, а a[hreflang="en"] — на англоязычные.

В примере 1 к ссылкам на англоязычные ресурсы добавляется иконка с британским флагом через свойство background. Остальные ссылки никак не выделяются.

Пример 1. Иконка у англоязычных ссылок

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hreflang</title> <style> a[hreflang="en"] { /* Параметры картинки */ background: url(/example/image/flag_en.png) no-repeat 100% 50%; /* Резервируем пустое пространство справа для картинки */ padding-right: 30px; } </style> </head> <body> <p><a href="https://www.android.com/intl/ru_ru/">Android</a> — официальный сайт.</p> <p><a href="https://www.android.com/intl/en_us/" hreflang="en">Android</a> — official website.</p> </body> </html>

Результат данного примера показан на рис. 1.

Вид ссылки с иконкой

Рис. 1. Вид ссылки с иконкой

Кроме иконки к тексту ссылки можно добавить какой-либо текст через псевдоэлемент ::after и свойство content. В примере 2 у ссылок на англоязычные ресурсы пишется текст «(англ.)».

Пример 2. Текст у англоязычных ссылок

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hreflang</title> <style> a[hreflang="en"]::after { content: " (англ.)"; /* Текст */ font-size: 0.8em; /* Размер текста */ color: #666; /* Цвет текста */ } </style> </head> <body> <p><a href="https://www.android.com/intl/ru_ru/">Android</a> — официальный сайт.</p> <p><a href="https://www.android.com/intl/en_us/" hreflang="en">Android</a> — official website.</p> </body> </html>

Результат данного примера показан на рис. 2. Дополнительно меняем размер и цвет текста, выводимого через content. Обратите внимание, что этот текст является частью ссылки, поэтому по нему можно щёлкнуть и он подчёркивается, как текст основной ссылки.

Вид ссылки с текстом

Рис. 2. Вид ссылки с текстом

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 22.01.2019
Редакторы: Влад Мержевич
Как научиться разрабатывать сайты