W3docs

Языковые коды 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

Practice

Практика
Какое значение является правильно сформированным языковым тегом BCP 47 для атрибута lang?
Какое значение является правильно сформированным языковым тегом BCP 47 для атрибута lang?
Was this page helpful?