В чем разница между <html lang = "en" > и <html lang = "en-US" >?

В чем разница между <html lang="en"> и <html lang="en-US">? Какие другие значения могут следовать тире?

Согласно w3.org "Любой двухбуквенный подкод понимается как код страны [ISO3166]". так значит ли это значение указанное в коде альфа-2, является принятым значением?

Ответ 1

<html lang="en">
<html lang="en-US">

Первый тег lang указывает только код языка. Второй указывает код языка, за которым следует код страны.

Какие другие значения могут следовать тире? Согласно w3.org "Любой двухбуквенный подкод понимается как код страны [ISO3166]. означает ли это, что любое значение, указанное в коде альфа-2, является принятым значение?

Да, однако значение может иметь или не иметь никакого реального значения.

<html lang="en-US"> по существу означает, что "эта страница находится в американском стиле английского языка". Аналогичным образом <html lang="en-GB"> будет означать, что "эта страница находится в английском стиле английского языка".

Если вы действительно хотите указать недопустимую комбинацию, вы можете. Это не значило бы многого, но <html lang="en-ES"> действует согласно спецификации, как я ее понимаю. Однако эта комбинация языка/страны не будет делать многого, поскольку в Испании обычно не говорят в Америке.

Я имею в виду, это каким-то образом еще больше помогает браузеру отображать страницу?

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

Ответ 2

Вы можете использовать любой код страны, да, но это не значит, что браузер или другое программное обеспечение распознает его или сделает что-то по-другому из-за этого. Например, программа чтения с экрана может иметь дело с "en-US" и "en-GB" одинаково, если они поддерживают только американский акцент на английском языке. Однако другая часть программного обеспечения, которая имеет два разных голоса, может настраиваться в соответствии с кодом страны.

Ответ 3

IETF "лучшая текущая практика" для языковых тегов определяется в BCP 47 (RFC 5646 и RFC 4647). Я предлагаю прочитать это, поскольку он объясняет гораздо больше о языковых subtags, чем вы когда-либо думали, что вам нужно знать.: -)

Он ссылается на IANA Subtag языка и Расширения языкового тега реестры.

Ответ 4

RFC 3066 содержит сведения о допустимых значениях (выделение и ссылки добавлены):

Все двухбуквенные subtags интерпретируются как коды ISO 3166 alpha-2 от [ISO 3166], или впоследствии присвоенный службой ISO 3166 агентства или руководящих органов по стандартизации, обозначая область, в которую этот языковой вариант относится.

Я интерпретирую это как значение любого действительного (согласно ISO 3166) 2-буквенный код действителен как subtag. В RFC говорится:

Тэги со вторыми субтагами от 3 до 8 букв могут быть зарегистрированы с помощью IANA, согласно правилам главы 5 настоящего документа.

Кстати, это выглядит как опечатка, поскольку глава 3, похоже, относится к процессу регистрации, а не к главе 5.

Быстрый поиск реестра IANA показывает очень длинный список всех доступных языковых subtags. Вот один пример из списка (который будет использоваться как en-scouse):

Тип: вариант

Subtag: scouse

Описание: Scouse

Добавлено: 2006-09-18

Префикс: ru

Комментарии: Английский Ливерпульский диалект, известный как "Scouse"

Доступны всевозможные subtags; быстрый свиток уже показал fr-1694acad (французский 17-й век).


Полезность некоторых из них (я бы сказал, что подавляющее большинство этих) тегов, когда дело касается документов, предназначенных для отображения в браузере, ограничено. спецификация интернационализации W3C просто заявляет:

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

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

Ответ 5

Это должно помочь: http://www.w3.org/International/articles/language-tags/

Золотое правило при создании языковых тегов заключается в том, чтобы тег был как можно короче. Избегайте региона, script или других subtags, кроме тех случаев, когда они добавляют полезную различающую информацию. Например, используйте ja для японского языка, а не ja-JP, если нет конкретной причины, по которой вам нужно сказать, что это японский язык, как говорят в Японии, а не в другом месте.

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

языка extlang- script -области-вариант-расширение-privateuse

Ответ 6

Ну, первый вопрос прост. Существует много en (Englishes), но (в основном) только один американский английский. Можно было бы предположить, что есть en-CN, en-GB, en-AU. Угадайте, что может быть даже австрийский английский, но больше да, чем да, есть.