lang

Синтаксис языкового тега

Глобальный атрибут lang помогает определить язык элемента: язык, на котором написаны нередактируемые элементы, или язык, на котором пользователем должны быть написаны редактируемые элементы. Атрибут содержит единственный “языковой тег” (language tag) в формате, определённом в Tags for Identifying Languages (BCP47).

Если значение атрибута — пустая строка (lang=""), язык устанавливается, как неизвестный. Если тег языка недействителен согласно BCP47, он устанавливается, как недействительный.

Подробный синтаксис BCP47 достаточно подробен, чтобы отмечать специфичные языковые диалекты, но в большинстве случаев его использование намного проще. 

Языковой тег состоит из языковых вложенных тегов, разделённых дефисом, где каждый вложенный тег указывает на определённое свойство языка. 3 наиболее распространённых вложенных тега:

Языковой подтег
Обязателен. Двух-или-трёх-символьный код, определяющий базовый язык, обычно записываемый в нижнем регистре. К примеру, код английского языка является en, а для Бадеши — bdz
Подтег скрипта
Необязателен. Данный подтег определяет систему записи, и всегда состоящий из 4 символов с первой заглавной буквой. К примеру,  французский язык Брайля — это fr-Brai, а ja-Kana — это японский язык, написанный с использованием алфавита Катакана (Katakana). Если язык написан типичным способом, например, английский с латинским алфавитом, нет необходимости использовать данный подтег.
Подтег региона
Необязателен. Данный подтег определяет диалект основного языка из определённого места и состоит из двух букв в ALLCAPS, соответствующих коду страны, или трёх цифр, соответствующих региону, который не относится к стране. К примеру, es-ES — это испанский язык, на котором разговаривают в Испании, а es-013 означает испанский язык, на котором разговаривают в Центральной Америке. “Международный испанский” было бы просто es.

Подтег скрипта предшествует подтегу региона, если присутствуют оба тега — ru-Cyrl-BY — это русский язык, написанный кириллицей, на котором разговаривают в Беларуси. 

Чтобы найти правильный подтег кода языка, используйте the Language Subtag Lookup.

Даже если указан атрибут lang, то он может не учитываться, поскольку атрибут xml:lang имеет приоритет над lang.

Для псевдокласса CSS :lang, два недопустимых названия языка будут разными, если их имена различны. Хотя, :lang(es) соответствует обоим lang="es-ES" и lang="es-419", но :lang(xyzzy) не соответствует lang="xyzzy-Zorp!".

Спецификации

Specification Status Comment
HTML Living Standard
Определение 'lang' в этой спецификации.
Живой стандарт

No change from latest snapshot,HTML 5.1

HTML 5.1
Определение 'lang' в этой спецификации.
Рекомендация Snapshot of HTML Living Standard, no change from HTML5
HTML5
Определение 'lang' в этой спецификации.
Рекомендация Snapshot of HTML Living Standard, behavior with xml:lang and language determination algorithm defined. It also is a true global attribute.
HTML 4.01 Specification
Определение 'lang' в этой спецификации.
Рекомендация Supported on all elements but <applet>, <base>, <basefont>, <br>, <frame> (en-US), <frameset> (en-US), <iframe> (en-US), <param> (en-US), and <script>.

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также