Язык нтмл: Тег — Глоссарий | MDN

Работа с языком в HTML (руководство)

Работа с языком в HTML (руководство)

Предполагаемая аудитория: XHTML/HTML и CSS кодеры, веб-разработчики (PHP, JSP, и т. д.), а также все, кому необходимо руководство по объявлению и использованию языковой информации в HTML. Предполагается, что вы имеете базовое знакомство с HTML и CSS.

Данное руководство объединяет и организует ссылки на статьи, которые, все вместе, помогут вам понять основные аспекты работы с языковой информацией при создании HTML и CSS.

В двух словах

Всегда добавляйте lang атрибут к тэгу html для того, чтобы установить язык по умолчанию вашей страницы.

<html lang="en">

Если это XHTML 1.x или HTML5 Polyglot документ, используемый, как XML, вам следует также использовать xml:lang атрибут (с тем же значением). Если ваша страница используется только, как XML, то просто используйте

xml:lang атрибут.

Не используйте meta элемент с http-equiv, установленным в значение Content-Language.

Выбирайте тэги из списка IANA Subtag Registry и следуйте правилам синтаксиса BCP 47 при использовании структур более сложных, чем просто языковой тэг. Держите свои языковые теги как можно более короткими.

Используйте :lang свойство в CSS, чтобы применять стили, зависящие от языка вашего контента.

Зачем объявлять язык?

Эта часть руководства объясняет мотивы для дальнейшего чтения. Если вы спешите и просто хотите знать, что делать, без теории, то начните читать раздел Как объявить язык страницы или элемента.

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

Зачем использовать атрибут языка? содержит примеры того, как языковая информация может быть полезной.

Как объявить язык страницы или элемента

Вам следует устанавливать язык текста на странице, используя языковые атрибуты. К сожалению, существует более, чем один атрибут, а также есть несколько вещей, которые необходимо прояснить. Этот раздел обсуждает различные варианты: те, которые следует использовать, и те, которых следует избегать (и почему).

Объявление языка в HTML предоставляет итоговую информацию о том, как объявлять язык, используя атрибуты.

HTTP заголовки, мета элементы и информация о языке описывает, как языковые метаданные отличаются от действительного языка текста, а также Content-Language, используемый в HTTP заголовках и мета элементах.

Работа с языковыми тэгами

В этом разделе рассматривается, как выбирать и создавать языковые теги, то есть значения, используемые для атрибутов языка.

Чтобы быть уверенным в том, что все юзер агенты понимают, какой язык вы имеете в виду, вам необходимо следовать стандартным подходам при предоставлении языковых значений. Вам, вероятно, потребуется рассмотреть, как относиться к диалектным различиям, например между американским и британским английским, которые содержат существенные различия в орфографии и произношении.

Языковые тэги в HTML и XML описывает синтаксис языковых тэгов, использующих спецификацию BCP 47.

Выбор языкового тэга предоставляет практическую информацию о том, как выбрать корректный тэг из тысяч доступных, для представления необходимого вам языка.

Установка языковых настроек браузера

Когда ваш браузер получает документ из Сети, он отправляет HTTP запрос на сервер. Вместе с запросом, браузер также посылает информацию о своих языковых настройках. Эти настройки могут влиять на то, какой контент будет отправлен вам обратно. Узнайте, как устанавливать и изменять эти настройки.

Установка языковых настроек в браузере

Использование информации о языке для стилизации документа

Вам зачастую необходимо применять различные стили для текста на различных языках (например, шрифт или высота строки, или, вероятно, различные стили выделения и так далее). Если вы задействуете атрибуты для определения языка контента, то вы сможете использовать некоторые мощные CSS селекторы для автоматического применения различных стилей при изменении языка контента. Следующая статья рассматривает различные способы того, как это сделать.

Стилизация с использованием языковых атрибутов

Дополнительные материалы

  • Приступаете к работе? Язык в Сети

  • Ссылки по теме, Разработка HTML и CSS

    • Язык

Является ли HTML языком программирования / Хабр

В последнее время всё чаще и чаще различные интернет ресурсы устраивают холивары на тему: является ли HTML языком програмирования или нет. Как водится, аргументов в пользу обеих точек зрения приводят немалое количество, поэтому я решил поставить для себя точку в этом ненужном споре.

Определение языка программирования

Язы́к программи́рованияформальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.

Так сказано в Википедии, и большинство остальных ресурсов либо полностью употребляет это определение, либо вольно излагает его без потери смысла. Рассмотрим поподробнее составные части определения ЯП:

  • Формальный язык — это множество конечных слов (строк, цепочек) над конечным алфавитом.
  • Знаковая система
    — это система однообразно интерпретируемых и трактуемых сообщений/сигналов, которыми можно обмениваться в процессе общения. Иногда знаковые системы помогают структурировать процесс общения с целью придания ему некой адекватности в плане реакций его участников на те или иные «знаки». В качестве примера знаковой системы обычно приводят язык (как в письменной форме так и, в случае естественных языков, в форме речи).
  • Компью́терная програ́мма — последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины.
  • Ле́ксика — совокупность слов того или иного языка, части языка или слов, которые знает тот или иной человек или группа людей.
  • Синтаксис — сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию). Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
  • Сема́нтика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей. В качестве инструментов построения таких моделей могут использоваться различные средства, например, математическая логика, λ-исчисление, теория множеств, теория категорий, теория моделей, универсальная алгебра. Формализация семантики языка программирования может использоваться как для описания языка, определения свойств языка, так и для целей формальной верификации программ на этом языке программирования.
  • Язы́к — знаковая система, соотносящая понятийное содержание и типовое звучание (написание).

Более простым языком это может быть изложено так:

Язык программирования — множество заранее определенных, однообразных и понятных исполнителю (читай: интерпретатору/компилятору/компьютеру/программисту) инструкций, предназначенных для записи последовательно с целью их исполнения неким устройством, являющимся частью вычислительной машины. Также язык программирования должен обладать рядом особенностей: инструкций должно быть ограниченное число, и все их должны знать; инструкции должны выстраиваться определенным образом для получения определенных результатов, и все должны об этом знать; должны существовать правила написания инструкций и все должны их знать; каждая конструкция языка должна однозначно соотносить то что написано с тем, что требовалось обозначить.

Вот так громоздко и некрасиво получилось, зато без сложных слов. Мы вернемся к этому определению чуть позже.

Виды языков программирования


Часто употребляют также разделение на низкоуровневые и высокоуровневые языки. Эти виды отличаются «толщиной прослойки» между процессором и программистом. Говоря простыми словами — в низкоуровневых языках каждая инструкция представляет собой одну или небольшое число процессорных команд, а в высокоуровневом языке каждая инструкция это большой набор процессорных команд.

Рассмотрим поближе определения разных типов по версии Википедии:

  • Аспе́ктно-ориенти́рованное программи́рование (АОП) — парадигма программирования, основанная на идее разделения функциональности для улучшения разбиения программы на модули.
  • Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.
    Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
  • Процедурное программирование — программирование на императивном языке, при котором последовательно выполняемые операторы можно собрать в подпрограммы, то есть более крупные целостные единицы кода, с помощью механизмов самого языка[1].
  • Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
  • Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.
  • Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
  • Мультипарадигма́льный язы́к программи́рования — как правило, язык программирования, который был разработан специально как инструмент мультипарадигмального программирования, то есть изобразительные возможности которого изначально предполагалось унаследовать от нескольких, чаще всего неродственных языков.
  • Эзотерический язык программирования — язык программирования, разработанный для исследования границ возможностей разработки языков программирования, для доказательства потенциально возможной реализации некой идеи (так называемое «доказательство концепции», англ. proof of concept), в качестве произведения программного искусства[en], или в качестве шутки (компьютерного юмора).

Императивный и декларативный подход


Все языки программирования делятся на две группы: декларативные и императивные.

Программа на императивном языке программирования с математической точки зрения представляет собой общее решение поставленной задачи, иными словами, ответ на вопрос «как делать?». Это последовательность команд, которые должен выполнить исполнитель.

Программа на декларативном языке программирования является сочетанием формализованной в рамках языка программирования задачей и всех необходимых для её решения теорем, проще говоря, ответ на вопрос «что делать?». Конкретную последовательность выполняемых действий выполняет компилятор, или чаще интерпретатор – программа, в реальном времени выполняющая код программы без его преобразования в машинный код.

Полнота по Тьюрингу

В теории вычислимости исполнитель (множество вычисляющих элементов) называется тьюринг-полным, если на нём можно реализовать любую вычислимую функцию. Другими словами, для каждой вычислимой функции существует вычисляющий её элемент (например, машина Тьюринга) или программа для исполнителя, а все функции, вычисляемые множеством вычислителей, являются вычислимыми функциями (возможно, при некотором кодировании входных и выходных данных).
Название пошло от Алана Тьюринга, который придумал абстрактный вычислитель — машину Тьюринга и дал определение множества функций, вычислимых посредством машин Тьюринга.
Другими словами язык является полным по Тьюрингу, если любая вычислимая функция, которая Вам нужна, может быть записана на этом языке и решена его исполнителем.

Не полные по Тьюрингу языки также существуют, но так как их создают в основном в академических целях, то они малоизвестны и широко не применяются.

Ответим на несколько вопросов:


  1. HTML — это язык?

    Да. Он имеет свойства, присущие языкам.

  2. HTML — соответствует определению языка программирования?

    Да. Он имеет синтаксис, семантику, лексику, он является языком и попадает в категорию декларативных языков программирования.

  3. HTML — является Тьюринг-полным языком?

    Нет. Проще говоря на HTML можно совершить только некоторую ограниченную совокупность действий, интерпретируемых браузером.

  4. Можно ли называть HTML языком программирования?

    В зависимости от контекста — да, можно. Но при этом следует помнить, что с таким же успехом можно назвать ЯП и CSS и XML и SQL. Другими словами данные языки формально могут быть названы языками программирования, но только с определенной долей скептицизма и с полным понимаем того, что эти языки не удовлетворяют всем требованиям.

  5. Является ли HTML языком программирования?

    Нет. Задача обычного языка программирования в обработке данных, а задача HTML в отображении данных. Он не является языком программирования и на нем нельзя произвести вычислений.

Вывод: Мы можем назвать HTML языком программирования только в контексте формальной полемики. На деле он является языком гипертекстовой разметки и ни чем больше. Но читатель должен понимать, что если нет четко прописанных стандартов, то никто не запрещает сделать язык, идентичный по синтаксису с HTML, но интерпретируемый совершенно по другому таким образом, чтобы он был полным по Тьюрингу.

Коды языков HTML — список двухбуквенных кодов языков ISO

Рекламные объявления

Код языка используется для указания языка содержимого.

В следующей таблице перечислены двухбуквенные коды языков ISO 639 (отсортированные по языку в алфавитном порядке), которые можно использовать с атрибутами lang и xml:lang для указания языка, содержащегося внутри элемента в документе HTML и XHTML. Коды языков нечувствительны к регистру.

от
Языковая группа Язык Код ISO
Северо-Западный Кавказ Абхазский аб
Афро-азиатский Афар аа
Индоевропейская Африкаанс и
Северо-европейский Албанский кв
Афро-азиатский Амхарский утра
Афро-азиатский Арабский ар
Индоевропейская Арагонский и
Индоевропейская Армянский хай
Индоевропейская Ассамский как
Аймаранский Аймара или
тюркский Азербайджанский аз
тюркский Башкирский ба
Языковая изоляция Басков ЕС
Индоевропейская Бенгальский (бангла) млрд
Китайско-тибетский Бутани дз
Индоевропейская Бихари ч. ч.
креольский Бислама до
Индоевропейская Бретонский бр
Индоевропейская Болгарский бг
Китайско-тибетский Бирманский мой
Индоевропейская Белорусский (Белорусский) будет
Австро-азиатский Камбоджийский км
Индоевропейская Каталонский примерно
Китайско-тибетский китайский ж
Индоевропейская корсиканский совместно с
Индоевропейская Хорватский ч
Индоевропейская Чехия кс
Индоевропейская Датский да
Индоевропейская Голландский нл
Индоевропейская английский (американский) и
Построен Эсперанто эо
Уральский Эстонский и
Индоевропейская Фарерские острова для
Индоевропейская Фарси ФА
Австронезийский Фиджи фдж
Уральский Финский фи
Индоевропейская Французский из
Индоевропейская фризский ф. у.
Индоевропейская Гэльский (шотландский) гд
Индоевропейская Гэльский (мэнский) гв
Индоевропейская Галисийский гл
Южно-Кавказский Грузинский ка
Индоевропейская немецкий из
Индоевропейская Греческий эль
Эскимосско-алеутский Калааллисут (Гренландия) кл
Тупиан Гуарани г
Индоевропейская Гуджарати гу
креольский Гаитянский креольский вт
Афро-азиатский Хауса га
Афро-азиатский Иврит он, ив
Индоевропейская Хинди привет
Уральский Венгерский ху
Индоевропейская Исландский это
Построен Идо ио
Австронезийский Индонезийский ид, в
Построен Интерлингва иа
Построено Интерлингв т. е.
Эскимосско-алеутский Инуктитут иу
Эскимосско-алеутский Инупиак ик
Индоевропейская ирландский га
Индоевропейская итальянский это
Японский Японский и
Австронезийский Яванский СП
Дравидийский Каннада кун
Индоевропейская Кашмири кс
тюркский Казахский кк
Нигер-Конго Киньяруанда (Руанда) RW
тюркский Киргизский кк
Нигер-Конго Кирунди (Рунди) р-н
Изолировать язык Корейский или
Индоевропейская Курдский ку
Тай-Кадай Лаосский вот
Индоевропейская Латинский ла
Индоевропейская Латышский (латышский) ур.
Индоевропейская Лимбургский (лимбургский) ли
Нигер-Конго Лингала по
Индоевропейская Литовский л
Индоевропейская Македонский мк
Австронезийский Малагасийский мг
Австронезийский малайский мс
Австронезийский Малаялам мл
Афро-азиатский Мальтийский мт
Австронезийский Маори миль
Индоевропейская маратхи г-н
Индоевропейская Молдавский пн
Монгольский Монгольский мин
Австронезийский Науру на
Индоевропейская Непальский не позднее
Индоевропейская Норвежский нет
Индоевропейская Окситанский ок
Индоевропейская Ория или
Афро-азиатский Оромо (Афан, Галла) или
Индоевропейская Пушту (пушту) пс
Индоевропейская польский пл
Индоевропейская Португальский пт
Индоевропейская Пенджаби па
Кечуанский Кечуа или
Индоевропейская Рето-романтика п. м.
Индоевропейская Румынский ро
Индоевропейская Русский руб
Австронезийский Самоанский см
креольский Санго сг
Индоевропейская Санскрит по
Индоевропейская Сербский ср
Индоевропейская Сербско-хорватский ш
Нигер-Конго Сесото ст
Нигер-Конго Сетсвана тн
Нигер-Конго Шона серийный номер
Китайско-тибетский Сычуань И II
Индоевропейская Синдхи сд
Индоевропейская сингальский и
Нигер-Конго Сисвати сс
Индоевропейская Словацкий ск
Индоевропейская Словенский сл
Афро-азиатский Сомалийский так
Индоевропейская Испанский или
Австронезийский Суданский и
Нигер-Конго Суахили (кисуахили) ПО
Индоевропейская Шведский св
Австронезийский Тагальский тл
Индоевропейская Таджикский тг
Дравидийский Тамильский та
тюркский татарский тт
Дравидийский Телугу тэ
Тай-Кадай тайский
Китайско-тибетский Тибетский бо
Афро-азиатский Тигриня
Австронезийский Тонга до
Нигер-Конго Цонга тс
тюркский Турецкий т. р.
тюркский Туркменский тк
Нигер-Конго Тви тв
тюркский Уйгурский уг
Индоевропейская Украинский Великобритания
Индоевропейская Урду ур
тюркский узбекский уз
Австро-азиатский Вьетнамский ви
Построен Волапюк или
Индоевропейская Валлон ва
Индоевропейская Уэльский су
Нигер-Конго Волоф или
Нигер-Конго Коса хв
Индоевропейская Идиш йи, йи
Нигер-Конго Йоруба лет
Нигер-Конго Зулу по

Предыдущая страница Следующая страница

Передовой опыт для объявления языка HTML

Что такое атрибут языка?

В HTML объявление языка — это атрибут, указывающий язык содержимого страницы. Выглядит так:


При определении содержимого тега lang используйте языковые коды ISO 639-1.

Для английского языка тег будет выглядеть так:


В то время как тег для французского языка будет таким:


Этот HTML-атрибут используется различными программами, в том числе поисковыми системами, чтобы помочь определить, на каком языке написана страница. Это полезно при попытке сопоставить нужное содержимое с нужным пользователем.

Имеет ли значение атрибут языка в SEO?

Атрибут языка HTML не оказывает большого влияния на поисковую оптимизацию, когда речь идет о Google. Google прямо заявил, что игнорирует этот тег в пользу тегов hreflang для многоязычных сайтов. Вот что сказал Джон Мюллер из Google в видеовстрече для веб-мастеров:

Так что, если это так, можете ли вы полностью игнорировать объявление языка?

Не совсем.

Хотя Google не смотрит на языковые теги, Bing делает это.

На самом деле Bing не использует тег hreflang при сопоставлении языка пользователя с содержимым страницы. Он использует так называемый метатег content-language в документа.

Узнайте больше о международной поисковой оптимизации Ознакомьтесь с нашими руководствами по hreflang и международной структуре сайта.

Вы можете проверить правильность объявления вашего языка , запустив бесплатную проверку WooRank.

Что такое метатег content-language?

Тег content-language — это метатег в HTML-документа, указывающий язык и страну, для которых содержимое страницы наиболее актуально.

Тег выглядит следующим образом:


В атрибуте содержимого вы определяете язык и страну. Таким образом, для американского английского это будет выглядеть так:


При установке языка следуйте двухбуквенному коду языка ISO 639, точно так же, как для языкового тега HTML. За языком должен следовать код страны по стандарту ISO 3166.

Например:

  • Французский язык во Франции: fr-fr
  • Французский язык в Канаде: fr-ca
  • Французский язык в Бельгии: fr-be
  • Испанский язык в Испании: es-es
  • Испанский язык в Мексике: es- mx

В то время как Bing также рассмотрит тег, но отдаст приоритет тегу.

Ошибки объявления общего языка

Несмотря на то, что использование HTML-атрибута объявления языка не повысит рейтинг вашего сайта, все же рекомендуется включать его по соображениям удобства использования и доступности. Вот наиболее распространенные ошибки при использовании атрибута объявления языка.

Использование неправильного кода языка

При объявлении языка необходимо использовать коды языка ISO 639-1. Одной из самых распространенных ошибок является неправильное использование этих кодов.

Вероятно, наиболее распространенной ошибкой является использование eng для английского языка вместо en.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *