Языковые коды HTML
Как работают языковые коды HTML: атрибут lang, теги BCP 47 с подтегами региона и письменности, почему это важно и полный список кодов ISO 639-1.
Языковые коды HTML
На этой странице объясняются языковые коды, используемые с атрибутом HTML lang (а также связанным атрибутом hreflang): из какого стандарта они взяты, как объединить язык с регионом или письменностью и где найти код для конкретного языка.
Какой стандарт фактически используется в значениях lang?
Значение lang — это не просто код ISO, а языковой тег BCP 47. Тег BCP 47 строится из подтегов в фиксированном порядке:
language[-script][-region]- язык — двухбуквенный код ISO 639-1, например
en,fr,zh. Если у языка нет кода 639-1, используется трёхбуквенный код ISO 639-2/639-3. - письменность — необязательный четырёхбуквенный код ISO 15924, например
Hans(упрощённое письмо хань) илиHant(традиционное письмо хань). - регион — необязательный двухбуквенный код страны по ISO 3166-1, например
US,BR,GB.
Таким образом, en — допустимый тег, как и en-US, pt-BR и zh-Hans. Подтег языка пишется строчными буквами, письменность — в формате title-case, регион — прописными буквами, однако теги сопоставляются без учёта регистра.
Почему объявление языка важно
Правильное указание lang выполняет реальную работу, а не только документирует код:
- Программы экранного чтения выбирают правильный голос синтеза речи и правила произношения на основе
lang. Одни и те же буквы читаются совершенно по-разному на английском и французском, поэтому неверный или отсутствующийlangприводит к искажённой речи. - Языки с письмом справа налево всё равно требуют атрибута
dir(dir="rtl") — одногоlang="ar"недостаточно для переключения направления текста. - Поисковые системы используют язык (и
hreflangна страницах с альтернативными языковыми версиями), чтобы показывать нужную версию сайта нужной аудитории. - Браузеры используют его для проверки орфографии, выбора правильного шрифта и типографики, а также применения CSS, зависящего от языка, например
:lang()и переноса слов.
Объявление языка страницы
W3C рекомендует объявлять основной язык каждой страницы с помощью атрибута lang в корневом теге <html>:
<!DOCTYPE html>
<html lang="en">
<head>
<title>My page</title>
</head>
<body>
...
</body>
</html>В XHTML задаются оба атрибута — lang и xml:lang:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
...
</html>Добавление подтега региона или письменности
Используйте подтег региона или письменности, когда вариант имеет значение — для орфографии, произношения или выбора формы написания:
<!-- Brazilian Portuguese, distinct from European Portuguese (pt-PT) -->
<html lang="pt-BR">
<!-- Plain Portuguese, no region preference -->
<html lang="pt">
<!-- Chinese written in Simplified characters -->
<html lang="zh-Hans">
<!-- Chinese written in Traditional characters, as used in Taiwan -->
<html lang="zh-Hant-TW">Используйте кратчайший тег, который передаёт нужное различие: применяйте просто en, если только разница между британским и американским написанием не важна — в таком случае используйте en-GB или en-US.
Разметка фрагмента текста на другом языке
Вы не ограничены уровнем всей страницы. Поместите lang на любой элемент, чтобы отметить фрагмент текста на другом языке — это позволит программам экранного чтения переключать голос прямо внутри предложения:
<p>
She greeted us with a cheerful
<span lang="fr">bonjour</span>
before sitting down.
</p>Здесь вся окружающая страница может иметь lang="en", а слово bonjour будет озвучено французским голосом.
Языковые коды ISO 639-1
В таблице ниже перечислены двухбуквенные коды ISO 639-1 — подтег языка, который ставится первым в теге BCP 47. Языки, у которых нет кода ISO 639-1, помечены -; для них следует использовать трёхбуквенный код ISO 639-2/639-3, указанный в примечании после дефиса.
Список языковых кодов ISO 639-1:
| Язык | Код ISO |
|---|---|
| Абхазский | ab |
| Афарский | aa |
| Африкаанс | af |
| Албанский | sq |
| Амхарский | am |
| Арабский | ar |
| Арагонский | an |
| Армянский | hy |
| Ассамский | as |
| Аймара | ay |
| Азербайджанский | az |
| Башкирский | ba |
| Баскский | eu |
| Бенгальский (бангла) | bn |
| Дзонг-кэ | dz |
| Бихари | bh |
| Бислама | bi |
| Боснийский | bs |
| Бретонский | br |
| Болгарский | bg |
| Бирманский | my |
| Белорусский | be |
| Кхмерский | km |
| Каталанский | ca |
| Чероки | - (639-2/3: chr) |
| Чева (чичева) | ny |
| Китайский | zh |
| Корсиканский | co |
| Хорватский | hr |
| Чешский | cs |
| Датский | da |
| Дивехи (дхивехи) | dv |
| Нидерландский | nl |
| Эдо | - (639-2/3: bin) |
| Английский | en |
| Эсперанто | eo |
| Эстонский | et |
| Фарерский | fo |
| Персидский (фарси) | fa |
| Фиджийский | fj |
| Финский | fi |
| Фламандский (нидерландский, Бельгия) | nl (region: nl-BE) |
| Французский | fr |
| Фризский (западный) | fy |
| Фула (фульфульде) | ff |
| Галисийский | gl |
| Гэльский (шотландский) | gd |
| Гэльский (мэнский) | gv |
| Грузинский | ka |
| Немецкий | de |
| Греческий | el |
| Гренландский | kl |
| Гуарани | gn |
| Гуджарати | gu |
| Гаитянский креольский | ht |
| Хауса | ha |
| Гавайский | - (639-2/3: haw) |
| Иврит | he |
| Хинди | hi |
| Венгерский | hu |
| Ибибио | - (639-2/3: ibb) |
| Исландский | is |
| Идо | io |
| Игбо | ig |
| Индонезийский | id |
| Интерлингва | ia |
| Интерлингве | ie |
| Инуктитут | iu |
| Инупиак | ik |
| Ирландский | ga |
| Итальянский | it |
| Японский | ja |
| Яванский | jv |
| Каннада | kn |
| Канури | kr |
| Кашмирский | ks |
| Казахский | kk |
| Киньяруанда (руандийский) | rw |
| Киргизский | ky |
| Кирунди (рунди) | rn |
| Конкани | - (639-2/3: kok) |
| Корейский | ko |
| Курдский | ku |
| Лаосский | lo |
| Латинский | la |
| Латышский (летышский) | lv |
| Лимбургский | li |
| Лингала | ln |
| Литовский | lt |
| Македонский | mk |
| Малагасийский | mg |
| Малайский | ms |
| Малаялам | ml |
| Мальтийский | mt |
| Маори | mi |
| Маратхи | mr |
| Монгольский | mn |
| Науру | na |
| Непальский | ne |
| Норвежский | no |
| Окситанский | oc |
| Ория | or |
| Оромо (афаан оромо) | om |
| Папьяменто | - (639-2/3: pap) |
| Пашто (пуштунский) | ps |
| Польский | pl |
| Португальский | pt |
| Панджаби | pa |
| Кечуа | qu |
| Ретороманский | rm |
| Румынский | ro |
| Русский | ru |
| Саамский (северный) | se |
| Самоанский | sm |
| Санго | sg |
| Санскрит | sa |
| Сербский | sr |
| Сербохорватский | sh (deprecated; use sr, hr, or bs) |
| Сесото (южный сото) | st |
| Сетсвана | tn |
| Шона | sn |
| Сычуаньский и | ii |
| Синдхи | sd |
| Сингальский | si |
| Свати | ss |
| Словацкий | sk |
| Словенский | sl |
| Сомалийский | so |
| Испанский | es |
| Сунданский | su |
| Суахили (кисуахили) | sw |
| Шведский | sv |
| Сирийский | - (639-2/3: syr) |
| Тагальский | tl |
| Таджикский | tg |
| Тамазигхт (центральноатласский) | - (639-3: tzm) |
| Тамильский | ta |
| Татарский | tt |
| Телугу | te |
| Тайский | th |
| Тибетский | bo |
| Тигринья | ti |
| Тонганский | to |
| Тсонга | ts |
| Турецкий | tr |
| Туркменский | tk |
| Тви | tw |
| Уйгурский | ug |
| Украинский | uk |
| Урду | ur |
| Узбекский | uz |
| Венда | ve |
| Вьетнамский | vi |
| Волапюк | vo |
| Валлонский | wa |
| Валлийский | cy |
| Волоф | wo |
| Коса | xh |
| Идиш | yi |
| Йоруба | yo |
| Зулу | zu |