язык + значение региона атрибута языка HTML5


11

Я работаю над веб-сайтом, который будет предлагать локализованный контент в соответствии с language+regionподходом, описанным на этой странице W3.org (например, fr-CAдля канадского французского контента и fr-FRдля контента "французский французский"). Поскольку мы считаем контент для каждого из language+regionних уникальным, для нас крайне важно, чтобы поисковые системы правильно идентифицировали контент и соответствующим образом обслуживали его.

Посмотрев в Интернете (например, на этот вопрос ), выяснилось, что большинство людей рекомендуют использовать код языка ISO639 в langатрибуте HTML для описания языка контента. Следуя этой рекомендации, мы будем использовать то, <html lang="fr">что не позволило бы провести различие между вышеупомянутыми language+regionкомбинациями.

При рассмотрении спецификации HTML4 кажется, что использование language+regionв качестве языкового кода было бы совершенно нормально, так как en-USпример приведен в качестве одного из возможных значений. Однако я не смог найти никакого подтверждения этому в спецификации HTML5, которая, кажется, не дает никакого примера относительно возможных допустимых значений.

Оттуда я попытался получить фактический ответ, посмотрев, что делают веб-гиганты. Я посмотрел на то, что делает Facebook: они предлагают версии своих сайтов на французском и французском языках Candian с (немного) различным содержанием, в то время как langзначение HTML остается тем же:


URL - адрес fr-CA : http://fr-ca.facebook.com
Атрибут lang HTML: <html lang="fr">
перевод слова «электронная почта»:courriel

fr-FR
URL: http://fr-fr.facebook.com/
Атрибут lang HTML: <html lang="fr">
перевод слова «электронная почта»:Adresse électronique

Каков рекомендуемый / стандартный способ описания контента, который был локализован с использованием language+regionподхода в HTML5?

Ответы:


5

W3C предоставляет это очень длинное руководство по выбору языковых тегов / subtags.

Важные биты:

Синтаксис языкового тега определяется BCP 47 IETF . В прошлом было необходимо просматривать списки кодов в различных стандартах ISO, чтобы найти правильные подтэги, но теперь вам нужно только заглянуть в Реестр языковых субтэгов IANA . Мы опишем новый реестр ниже.

В этой статье приводятся рекомендации по выбору компонентов языкового тега. Для обзора концепций, определенных в BCP 47, см. Языковые теги в HTML и XML .

...

Доступны инструменты, которые предоставляют дополнительную помощь при поиске в реестре, например инструмент поиска языкового подтега Ричарда Ишиды .

...

Убедитесь, что у вас есть правильный язык. Иногда стоит проверить несколько альтернатив. Марк Дэвис, соавтор BCP47, пишет: «Часто неясно, какой идентификатор языка использовать. Например, то, что большинство людей называют панджаби в Пакистане, на самом деле имеет код« lah »и формальное имя« Lahnda ». Существует много другие случаи, когда одно и то же имя используется для разных языков или если имя, которое ищут люди, не указано в реестре IANA ».

Вы можете найти информацию о языке в этнологии SIL и сопоставить эту информацию с Википедией . Ethnologue использует те же трехбуквенные коды, что и BCP47, но вам нужно преобразовать двухбуквенные коды BCP47 в их аналог ISO 639-3, чтобы найти язык по коду. ( Инструмент Ричарда Ишиды делает это для вас.)

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

(Акцент мой.)

Следует отметить, что реестр языковых вложенных тегов IANA довольно сложен в использовании. За исключением встроенных тегов (например en-GB-oed), вы должны искать тег языкового семейства и подтеги регион / вариант отдельно. А теги / подтеги организованы по типу, а не по иерархии. Так что просто сэкономьте время и усилия и используйте потрясающий инструмент поиска Ричарда Ишиды .


2

Использование <html lang="fr-FR">и <html lang="fr-CA">хорошо, если они соответствуют фактическому содержанию. Но они игнорируются поисковыми системами, как <html lang="fr">есть.

HTML5 не означает изменение использования языковых кодов. Система кодов, как определено в BCP 47 и расширениях к ней, очень сложна и позволяет вам указать языковой вариант с мучительной точностью. Уровень техники находится на гораздо более простых уровнях, и fr-FR и fr-CA представляют собой лучшую степень детализации, которую вы можете достичь в настоящее время в программном обеспечении; довольно часто, только основной код (здесь, fr) имеет значение.

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

Трудно обвинить их в этом, поскольку это дает лучшие результаты, чем доверие к langатрибутам. Например, многие авторские инструменты автоматически генерируют lang="en"независимо от фактического содержания, не сообщая об этом автору.


2

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

Спецификация HTML5 требует , чтобы langзначение было допустимым тегом BCP 47 . В этом документе соответствующий бит, кажется, находится в разделе 3.4:

Например, реализация может отобразить расширенные языковые диапазоны на базовые диапазоны. Другая возможность может быть для реализации, чтобы возвратить соответствующий тег, который является первым в ASCII-порядке. Если языковой диапазон был «* -CH» («CH» представляет Швейцарию), а набор тегов включал «de-CH» (немецкий, используемый в Швейцарии), «fr-CH» (французский, Швейцария) и «it -CH "(итальянский, Швейцария), тогда будет возвращен тег" de-CH ".

... что, когда вы смотрите на это, в основном то, что вы получили из спецификации HTML 4 со ссылкой на RFC1766, просто более подробно.


У меня возникают трудности с поиском цитируемого вами абзаца (я искал некоторые из его ключевых слов в предоставленной мной ссылке и в разделе 3.4 и ничего не смог найти). Можете ли вы дать мне ссылку на него, пожалуйста? (в идеале с хеш-тегом, если это возможно).
Макс

Спецификация HTML 5 относится только к требуемому формату. Указанный бит взят из ссылки BCP 47, в которой этот формат фактически определен.
Su '
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.