lang — HTML: HyperText Markup Language
The lang
global attribute helps define the language of an element: the language that non-editable elements are written in, or the language that the editable elements should be written in by the user. The attribute contains a single «language tag» in the format defined in RFC 5646: Tags for Identifying Languages (also known as BCP 47).
Note: The default value of lang
is unknown
, therefore it is recommended to always specify this attribute with the appropriate value.
If the attribute value is the empty string (lang=""
), the language is set to unknown; if the language tag is not valid according to BCP47, it is set to invalid.
Even if the lang attribute is set, it may not be taken into account, as the xml:lang attribute has priority.
For the CSS pseudo-class :lang
, two invalid language names are different if their names are different.
:lang(es)
matches both lang="es-ES"
and lang="es-419"
, :lang(xyzzy)
would not match lang="xyzzy-Zorp!"
.The full BCP47 syntax is in-depth enough to mark extremely specific language dialects, but most usage is much simpler.
A language tag is made of hyphen-separated language subtags, where each subtag indicates a certain property of the language. The 3 most common subtags are:
- Language subtag
Required. A 2-or-3-character code that defines the basic language, typically written in all lowercase. For example, the language code for English is
en
, and the code for Badeshi isbdz
.- Script subtag
Optional. This subtag defines the writing system used for the language, and is always 4 characters long, with the first letter capitalized. For example, French-in-Braille is
fr-Brai
andja-Kana
is Japanese written with the Katakana alphabet.If the language is written in a highly typical way, like English in the Latin alphabet, there is no need to use this subtag.
- Region subtag
Optional. This subtag defines a dialect of the base language from a particular location, and is either 2 letters in ALLCAPS matching a country code, or 3 numbers matching a non-country area. For example,
es-ES
is for Spanish as spoken in Spain, andes-013
is Spanish as spoken in Central America. «International Spanish» would just bees
.
The script subtag precedes the region subtag if both are present — ru-Cyrl-BY
is Russian, written in the Cyrillic alphabet, as spoken in Belarus.
To find the correct subtag codes for a language, try the Language Subtag Lookup.
WCAG Success Criterion 3.1.1 requires that a page language is specified in a way which may be ‘programmatically determined’ (i.e. via the lang
attribute).
WCAG Success Criterion 3.1.2 requires that pages with parts in different languages have the languages of those parts specified too. Again, the lang
attribute is the correct mechanism for this.
The purpose of these requirements is primarily to allow assistive technologies such as screen readers to invoke the correct pronunciation.
For example, the language menu on this site (MDN) includes a lang
attribute for each entry:
<div> <button type="button" aria-haspopup="true" aria-owns="language-menu" aria-label="Current language is English. Choose your preferred language."> English <span aria-hidden="true">▼</span> </button> <ul aria-expanded="true" role="menu"> <li lang="ca" role="menuitem"> <a href="/ca/docs/Web/HTML/Global_attributes/lang" title="Catalan"> <bdi>Català</bdi> </a> </li> <li lang="de" role="menuitem"> <a href="/de/docs/Web/HTML/Globale_Attribute/lang" title="German"> <bdi>Deutsch</bdi> </a> </li> <li lang="es" role="menuitem"> <a href="/es/docs/Web/HTML/Atributos_Globales/lang" title="Spanish"> <bdi>Español</bdi> </a> </li> <li lang="fr" role="menuitem"> <a href="/fr/docs/Web/HTML/Attributs_universels/lang" title="French"> <bdi>Français</bdi> </a> </li> <li lang="ja" role="menuitem"> <a href="/ja/docs/Web/HTML/Global_attributes/lang" title="Japanese"> <bdi>日本語</bdi> </a> </li> <li lang="ko" role="menuitem"> <a href="/ko/docs/Web/HTML/Global_attributes/lang" title="Korean"> <bdi>한국어</bdi> </a> </li> <li lang="pt-BR" role="menuitem"> <a href="/pt-BR/docs/Web/HTML/Global_attributes/lang" title="Portuguese (Brazilian)"> <bdi>Português (do Brasil)</bdi> </a> </li> <li lang="ru" role="menuitem"> <a href="/ru/docs/Web/HTML/Global_attributes/lang" title="Russian"> <bdi>Русский</bdi> </a> </li> <li lang="uk" role="menuitem"> <a href="/uk/docs/Web/HTML/%D0%97%D0%B0%D0%B3%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8/lang" title="Ukrainian"> <bdi>Українська</bdi> </a> </li> <li lang="zh-Hans" role="menuitem"> <a href="/zh-CN/docs/Web/HTML/Global_attributes/lang" title="Chinese (Simplified)"> <bdi>中文 (简体)</bdi> </a> </li> <li> <a href="/en-US/docs/Web/HTML/Global_attributes/lang$locales" rel="nofollow" > Add a translation </a> </li> </ul> </div>
Specification |
---|
HTML Standard # attr-lang |
BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
- All global attributes.
Content-Language
HTTP Header- HTML
translate
attribute
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on by MDN contributors.
Атрибут lang | htmlbook.ru
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
6.0+ | 1.0+ | 3.5+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
Описание
Текст документа может быть набран как на одном языке, так и содержать вставки на других языках, которые могут различаться по своим правилам оформления текста. Например, для русского, немецкого и английского языка характерны разные кавычки, в которые берется цитата. Чтобы указать язык, на котором написан текст внутри текущего элемента и применяется атрибут lang. Браузер использует его значение для правильного отображения некоторых символов.
Синтаксис
lang="код языка"
Значения
См. коды языков
Значение по умолчанию
Нет.
Применяется к тегам
<a>, <abbr>, <acronym>, <address>, <applet>, <area>, <b>, <basefont>, <bdo><bgsound>, <big>, <blockquote>, <body>, <br>, <button>, <caption>, <center>, <cite>, <code>, <col>, <colgroup>, <dd>, <del>, <dfn>, <dir>, <div>, <dl>, <dt>, <em>, <embed>, <fieldset>, <font>, <form>, <frame>, <h2>, <h3>, <h4>, <h5>, <h5>, <h6>, <hr>, <i>, <iframe>, <img>, <input>, <ins>, <isindex>, <kbd>, <label>, <legend>, <li>, <link>, <map>, <marquee>, <menu>, <nobr>, <object>, <ol>, <option>, <p>, <plaintext>, <pre>, <q>, <s>, <samp>, <select>, <small>, <span>, <strike>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <tr>, <tt>, <u>, <ul>, <var>, <wbr>, <xmp>
Пример
HTML5IECrOpSaFx
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Атрибут lang</title> <style> p { font-size: 130%; /* Размер текста */ } q:lang(de) { quotes: "\201E" "\201C"; /* Вид кавычек для немецкого языка */ } q:lang(en) { quotes: "\201C" "\201D"; /* Вид кавычек для английского языка */ } q:lang(fr), q:lang(ru) { /* Вид кавычек для русского и французского языка */ quotes: "\00AB" "\00BB"; } </style> </head> <body> <p>Цитата на французском языке: <q lang="fr">Ce que femme veut, Dieu le veut</q>.</p> <p>Цитата на немецком: <q lang="de">Der Mensch, versuche die Gotter nicht</q>.</p> <p>Цитата на английском: <q lang="en">То be or not to be</q>.</p> </body> </html>
Результат данного примера показан на рис. 1. Для отображения типовых кавычек в примере используется стилевое свойство quotes, а само переключение языка и соответствующего вида кавычек происходит через атрибут lang, добавляемый к тегу <q>.
Рис. 1. Вид кавычек для разных языков
HTML Код языка ISO
❮ Предыдущий Далее ❯
Коды языков ISO
Всегда следует указывать код атрибут lang
внутри Тег
для объявления языка
Веб-страница. Это предназначено для помощи поисковым системам и браузерам:
…
В XHTML язык объявляется внутри тега
следующим образом:
w3.org/1999/xhtml» lang=»en» xml:lang=»en»>
…
Коды языков ISO 639-1
ISO 639-1 определяет сокращения для языков:
См. также : Справочник по кодам стран
отЯзык | Код ISO |
---|---|
Абхазский | аб |
Афар | аа |
Африкаанс | и |
Акан | ак |
Албанский | кв |
Амхарский | утра |
Арабский | ар |
Арагонский | и |
Армянский | хай |
Ассамский | как |
Аварик | ав |
Авестийский | |
Аймара | и |
Азербайджанский | аз |
Бамбара | бм |
Башкирский | ба |
Басков | ЕС |
Белорусский | будет |
Бенгальский (бангла) | млрд |
Бихари | бх |
Бислама | до |
боснийский | бс |
Бретонский | руб |
Болгарский | бг |
Бирманский | мой |
каталонский | ок |
Чаморро | ч |
Чеченская | |
Чичева, Чева, Ньянджа | нью-йоркский |
Китайский | ж |
Китайский (упрощенный) | ж-Ханс |
Китайский (традиционный) | ж-хант |
Чувашский | резюме |
Корниш | кВт |
корсиканский | совместно с |
Кри | кр |
ч | |
Чехия | кс |
Датский | да |
Дивехи, Дивехи, Мальдивские острова | дв |
Голландский | нл |
Дзонгка | дз |
Английский | и |
Эсперанто | эо |
Эстонский | и |
Овца | ее |
Фарерские острова | для |
Фиджи | фдж |
Финский | фи |
Французский | из |
Фула, Фула, Пулаар, Пулар | и далее |
Галисийский | гл |
Гэльский (шотландский) | гд |
Гэльский (мэнский) | гв |
Грузинский | ка |
немецкий | из |
Греческий | эль |
Гренландский | кл |
Гуарани | г |
Гуджарати | гу |
Гаитянский креольский | х |
Хауса | га |
Иврит | он |
Гереро | Гц |
Хинди | привет |
Хири Моту | хо |
Венгерский | ху |
Исландский | это |
Идо | ио |
Игбо | иг |
Индонезийский | ид, в |
Интерлингва | иа |
Интерлингв | т.![]() |
Инуктитут | иу |
Инупиак | ик |
Ирландский | га |
итальянский | это |
Японский | я |
Яванский | СП |
Калааллисут, Гренландия | кл |
каннада | кун |
Канури | крон |
Кашмири | кс |
Казахский | кк |
Кхмерский | км |
Кикую | ки |
Киньяруанда (Руанда) | ряд |
Кирунди | р-н |
Кыргызстан | кк |
Коми | кв |
Конго | кг |
Корейский | ко |
Курдский | ку |
Кваньяма | кдж |
Лаос | вот |
Латинский | ла |
Латышский (латышский) | ур.![]() |
Лимбургский (лимбургский) | ли |
Лингала | п |
Литовский | л |
Луга-Катанга | лю |
Луганда, Ганда | лг |
Люксембургский | фунтов |
Манкс | гв |
Македонский | мк |
Малагасийский | мг |
малайский | мс |
Малаялам | мл |
Мальтийский | м |
Маори | миль |
маратхи | г-н |
Маршалловы острова | мч |
Молдавский | пн |
Монгольский | мин |
Науру | на |
Навахо | нв |
Ндонга | нг |
Северный ндебеле | и |
Непальский | не |
Норвежский | нет |
Норвежский букмол | № |
Норвежский нюнорск | нн |
Нуосу | II |
Окситанский | ок |
Оджибве | или |
Старославянский, староболгарский | у.![]() |
Ория | или |
Оромо (Афаан Оромо) | или |
Осетинский | ос |
Пали | пи |
пушту, пушту | пс |
Персидский (фарси) | ФА |
польский | пл |
Португальский | пт |
пенджаби (восточный) | па |
Кечуа | или |
ретороманский | п.м. |
Румынский | ро |
Русский | руб |
Сами | се |
Самоа | см |
Санго | сг |
Санскрит | с |
Сербский | ср |
сербско-хорватский | ш |
Сесото | ст |
Сетсвана | тн |
Шона | серийный номер |
Сычуань И | II |
Синдхи | сд |
сингальский | и |
Сисвати | сс |
Словацкий | ск |
Словенский | сл |
Сомалийский | так |
Южный ндебеле | № |
Испанский | или |
суданский | и |
Суахили (кисуахили) | ПО |
Свати | сс |
Шведский | св |
Тагальский | тл |
Таитянский | ты |
Таджикский | тг |
Тамильский | та |
Татарский | т |
Телугу | тэ |
тайский | -й |
Тибетский | бо |
Тигриня | ти |
Тонга | до |
Цонга | тс |
Турецкий | т.![]() |
Туркменский | тк |
Тви | тв |
Уйгурский | уг |
Украинский | Великобритания |
Урду | ур |
Узбекский | уз |
Венда | ве |
Вьетнамский | ви |
Волапюк | или |
Валлон | ва |
валлийский | су |
Волоф | или |
Западно-фризский | ф.у. |
коса | хв |
Идиш | йи, йи |
Йоруба | лет |
Чжуан, Чжуан | за |
Зулу | по |
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.

Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
9000 3
Лучшие ссылки
HTML ReferenceCSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
911 89 лучших примеров Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.
Авторское право 1999-2023 по данным Refsnes. Все права защищены.
W3Schools работает на основе W3.CSS.
Объявление языка в HTML
Объявление языка в HTMLВопрос
Как мне установить язык содержимого моей HTML-страницы?
На этой странице описывается, как разметить HTML-страницу, чтобы она давала информацию о языке страницы. Он начинается с общего резюме, а затем предоставляет дополнительные сведения в последующих разделах.
Быстрый ответ
Всегда используйте атрибут языка в теге html
, чтобы объявить язык текста по умолчанию на странице. Это наследуется всеми другими элементами. Например:
Обратите внимание, что следует использовать элемент html
, а не элемент body
, поскольку элемент body
не закрывает текст внутри элемента head
документа.
Если страница содержит содержимое на другом языке, добавьте атрибут языка к элементу, окружающему это содержимое. Это позволяет вам стилизовать или обрабатывать его по-разному. Например:
Название: "Le Bon Usage".
Используйте атрибут lang
для страниц, обслуживаемых как HTML. (Для страниц, обслуживаемых в формате XML, включая многоязычные документы XHTML 1.x и HTML5, см. раздел Выбор правильного атрибута.)
Используйте языковые теги из реестра IANA Language Subtag . Вы можете найти вложенные теги, используя неофициальный инструмент поиска языковых подтегов. (подробнее)
В некоторых частях вашего кода могут возникнуть проблемы. Если у вас есть многоязычный текст в title
, вы не можете размечать части текста для разных языков, потому что атрибут title
допускает только символы — без разметки. То же самое касается нескольких языков в значениях атрибутов. На данный момент нет хорошего решения для этого.
Используйте вложенные элементы, чтобы позаботиться о содержимом и значениях атрибутов одного и того же элемента на разных языках. (подробнее)
Вы никогда не должны использовать метаэлемент
с http-equiv 9Для атрибута 0009 установлено значение
Content-Language
, чтобы указать язык страницы, но в определенных обстоятельствах вы можете захотеть предоставить информацию о языке с заголовком HTTP, чтобы указать предполагаемую аудиторию вашей страницы. Независимо от того, используете ли вы заголовок HTTP или нет, вы всегда должны объявлять язык текста на странице с помощью языкового атрибута в теге html
. Для получения дополнительной информации см. сопутствующую статью, заголовки HTTP, элементы meta
и информацию о языке.
Детали
В этом разделе представлена более подробная информация по различным темам, связанным с объявлением языка в HTML.
Не забудьте также использовать атрибут
dir
при работе с двунаправленным текстом, таким как арабский, иврит и т. д.
Что делать, если содержимое элемента и значения атрибутов на разных языках?
Иногда язык текста в
атрибут и содержимое элемента на разных языках. Например, в правом верхнем углу этой статьи есть ссылки на переведенные версии этой страницы.
текст ссылки показывает язык целевой страницы, используя язык целевой страницы, но связанный
атрибут title
содержит подсказку в
язык текущей страницы:
Если ваш код выглядит следующим образом, язык
атрибуты на самом деле означают, что не только содержимое, но и текст атрибута
title
на испанском языке.
Это явно неправильно.
Неверный код. Не копируйте! Вместо этого переместите атрибут, содержащий текст на другом языке, в другой элемент, как показано в этом примере, где элемент a
наследует настройку по умолчанию en
элемента html
.
Что делать, если нет элемента, на который можно повесить атрибут?
Если вы хотите указать язык содержимого, но вокруг него нет разметки, используйте такой элемент, как span
, bdi
или div
вокруг содержимого.
Вот пример:
Вы бы сказали, что по-китайски это 中国科学院文献情报中心.
Выбор языковых значений
Чтобы быть уверенным, что все пользовательские агенты распознают язык, который вы имеете в виду, вам необходимо следовать стандартному подходу при предоставлении значений языковых атрибутов.
Вам также необходимо подумать о том, как стандартно относиться к диалектным различиям между языками, например, к различиям между английским (США) и
британский английский, которые значительно расходятся с точки зрения написания и произношения.
Правила создания значений языковых атрибутов описаны в спецификации IETF под названием BCP 47. В дополнение к определению того, как использовать простые языковые теги, такие как en
для английского или fr
для французского, BCP 47 описывает
как составлять языковые теги, которые позволяют указывать региональные диалекты, сценарии и другие варианты, связанные с этим языком.
BCP 47 включает наборы языков и кодов стран ISO, но выходит за их пределы. Чтобы найти соответствующие коды, вы должны обратиться к Реестр языковых подтегов IANA .
Неофициальный инструмент поиска языковых подтегов предоставляет удобный внешний интерфейс для реестра IANA.
Нежное, но достаточно подробное введение в синтаксис тегов BCP 47 см. в статье Language.
теги в HTML и XML . Для получения помощи в выборе правильного языкового тега из множества возможных тегов и комбинаций см.
Выбор языкового тега .
Выбор правильного атрибута
Если ваш документ HTML (т.е. используется как text/html
), используйте атрибут lang
для установки языка
документа или диапазона текста. Например, следующее устанавливает французский язык по умолчанию:
При обслуживании страниц XHTML 1.x или полиглотов как
— это стандартный способ определения информации о языке в XML. Убедитесь, что значения обоих атрибутов идентичны. text/html
используйте одновременно атрибут lang
и атрибут xml:lang
каждый раз, когда вы хотите установить язык. 9Атрибут 1261 xml:lang
Атрибут xml:lang
на самом деле не полезен для обработки файла как HTML, но заменяет атрибут lang
каждый раз, когда вы обрабатываете или обслуживаете документ как XML. Атрибут
lang
разрешен синтаксисом XHTML и может также распознаваться браузерами. Однако при использовании других парсеров XML (таких как lang()
в XSLT), вы не можете полагаться на распознавание атрибута lang
.
Если вы обслуживаете свою страницу как XML (т.е. используете тип MIME, такой как application/xhtml+xml
), вы делаете
не нужен атрибут lang
. Одного атрибута xml:lang
будет достаточно.
Дополнительная информация
Информация в этом разделе вряд ли будет полезна, но предоставлена для полноты.
Указание метаданных о языке аудитории
В дополнение к включению атрибута языка на странице в тег html
(что вы всегда должны делать), вы также могли столкнуться с объявлениями языка в заголовке HTTP (который обслуживается страницей) или как метаданные .
элементов.
Важно отметить, что объявление языка на странице всегда переопределяет информацию HTTP, когда дело доходит до определения фактического языка текста, но информация HTTP может предоставить более общую информацию о целевое использование ресурса. Использование метаэлементов
на странице HTML для объявления языка не рекомендуется.
Для получения информации о Content-Language
в HTTP и в мета-элементах
см. HTTP-заголовки, мета-элементы
и информацию о языке .
Различные вещи, которые не имеют значения
На всякий случай и ради полноты, возможно, стоит упомянуть еще несколько моментов, которые , а не , относящийся к этому обсуждению.
Во-первых, нельзя объявить язык текста с помощью CSS.
Во-вторых, DOCTYPE
, который должен запускать любой HTML-файл, может содержать то, что некоторым людям кажется объявлением языка.
DOCTYPE
в приведенном ниже примере содержит текст EN, что означает «английский». Это, однако, указывает на язык схемы , связанной с этим документом — это не имеет ничего общего с языком самого документа.
В-третьих, иногда люди предполагают, что информация о естественном языке может быть получена из кодировки символов. Однако кодировка символов не позволяет однозначно идентифицировать естественный язык: должно быть однозначное соответствие между кодировкой и языком, чтобы этот вывод работал, а такого нет. Например, одна кодировка символов может использоваться для многих языков, например. Латинский 1 (ISO-8859-1) мог кодировать как французский, так и английский, а также множество других языков. Кроме того, кодировка символов может варьироваться в зависимости от одного языка, например, для арабского языка могут использоваться такие кодировки, как «Windows-1256», «ISO-8859-6» или «UTF-8».
Все эти примеры кодировки, однако, в настоящее время являются спорными, поскольку весь контент должен быть написан в кодировке UTF-8, которая охватывает все языки, кроме самых редких, в единой кодировке символов.
В некоторых алфавитах, таких как арабский и иврит, отображаемый текст читается преимущественно справа налево, хотя в этом потоке числа и текст из других алфавитов отображаются слева направо. Разметка, такая как 9Атрибут 1261 dir необходим для установки общего контекста письма справа налево, а в некоторых случаях для правильного отображения двунаправленного текста требуется разметка, но это невозможно сделать с помощью языковой разметки.
То же самое касается направления текста. Как и в случае с кодировками и языком, между языком и сценарием не всегда существует однозначное соответствие и, следовательно, направленность. Например, азербайджанский язык может быть написан как справа налево (арабский), так и слева направо (латиница или кириллица), а код языка az
может быть актуален для обоих.