Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Лекция 8:

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

< Лекция 7 || Лекция 8: 123 || Лекция 9 >
Аннотация: В этом разделе обсуждаются два важных вопроса, которые влияют на интернационализацию HTML: спецификация языка (атрибут lang) и направление (атрибут dir) текста в документе.

Спецификация языка содержимого: атрибут lang

Определение атрибута

lang = language-code [CI]

Этот атрибут определяет базовый язык значений атрибутов элементов и содержимого текста. По умолчанию значение этого атрибута неизвестно.

Информация о языке, определённая атрибутом lang , может быть использована Пользовательским Агентом (ПА) для управления представлением различными путями.

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

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

Атрибут lang определяет язык содержимого элемента и значений атрибутов. Относится ли это к соответствующему атрибуту, зависит от синтаксиса и семантики атрибута и выполняемой операции.

Цель атрибута lang - создать ПА условия для более понятного представления содержимого на базе принятой для данного языка культурной практики. Это не означает, что ПА должны отображать нетипичные для конкретного языка символы менее осмысленным способом. ПА обязаны действовать наилучшим образом для отображения всех символов независимо от значений атрибута lang .

Например, если символы греческого алфавита появляются в окружении английского текста:

<P><Q lang="en">Her super-powers were the result of
&gamma;-radiation,</Q> he explained.</P>

ПА должен

  1. попытаться представить английское содержимое соответствующим образом (например, при обработке знаков кавычек) и
  2. обязан попытаться представить символ \gamma наилучшим образом, несмотря на то, что этот символ не является английской буквой.

См. дополнительную информацию в разделе "неотображаемые символы" .

Коды языка

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

"[RFC1766]" определяет и разъясняет коды языка, которые должны использоваться в документах HTML.

Если говорить кратко, коды языка состоят из первичного кода и, возможно пустых, серий субкодов:

language-code = primary-code ( "-" subcode )*

Вот примеры кодов некоторых языков:

  • "en": английский,
  • "en-US": американский английский,
  • "en-cockney": Cockney-версия английского,
  • "i-navajo": навахо,
  • "x-klingon": тег "x" обозначает экспериментальный тег языка.

Двухсимвольные первичные коды зарезервированы для аббревиатур [ISO639].

Двухсимвольные коды включают fr (французский), de (немецкий), it (итальянский), nl (фламандский), el (греческий), es (испанский), pt (португальский), ar (арабский), he (еврейский), ru (русский), zh (китайский), ja (японский), hi (хинди), ur (урду) и sa (санскрит).

Любой двухбуквенный субкод понимается как код страны в [ISO3166].

Наследование кодов языка

Элемент наследует информацию кода языка в следующем порядке (приоритет от высшего к низшему):

  • установлен атрибут lang в самом элементе;
  • установлен атрибут lang ближайшего элемента-предка (т.е. атрибут lang наследован);
  • заголовок HTTP " Content-Language " (который может быть сконфигурирован на сервере). Например:

    Content-Language: en-cockney
  • значения ПА по умолчанию и установки пользователя.

В этом примере основной язык документа - французский ("fr"). Один параграф объявлен как испанский ("es"), после которого возвращается основной язык (французский). Следующий параграф содержит фразу на внедрённом японском ("ja"), после чего возвращается основной язык (французский).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML lang="fr">
<HEAD>
<TITLE>Un document multilingue</TITLE>
</HEAD>
<BODY>
...интерпретируется как французский...
<P lang="es">...интерпретируется как испанский...
<P>...снова интерпретируется как французский...
<P>...французский текст прерывается японским...
<EM lang="ja">что-нибудь на японском</EM>здесь снова продолжается французский...
</BODY>
</HTML>
Примечание. Если ячейка занимает область из нескольких ячеек ( span ), то она может наследовать значение lang не из своего предка, а из первой ячейки в span. См. детали в разделе "наследование выравнивания" .

Интерпретация кодов языка

В контексте HTML код языка должен интерпретироваться ПА как иерархия понятий, а не отдельное понятие. Когда ПА уточняет отображение, используя информацию о языке (путём сравнения кодов языка таблиц стилей и значений атрибута lang ), он всегда должен находить точное совпадение, но должен также учитывать совпадение основных кодов. Таким образом, если значение атрибута lang "en-US" установлено для элемента HTML, ПА должен сначала отдать предпочтение информации, совпадающей с "en-US", а уже затем - с более общим значением "en".

Примечание. Иерархии кодов языка не гарантируют, что все языки с обычным префиксом будут свободно пониматься, но они (иерархии) позволяют пользователю запрашивать эту сообщность, если для пользователя это является верным.
< Лекция 7 || Лекция 8: 123 || Лекция 9 >
Ирина Кириллова
Ирина Кириллова

Нажимаю на ссылку на дополнительный материал и дополнение к информации-меня возвращает на первую страницу лекции. Подскажите, что делать? Или дополнительный материал платный?

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Иван Бокарёв
Иван Бокарёв
Австрия