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


106

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

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


Вы можете найти более подробную информацию в RFC, указанном в спецификации .
Джеймс Аллардис

1
Вас интересуют различия между браузерами или теория (спецификация)?
Апрель

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

Ответы:


130

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

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

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

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

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

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

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

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


31
FWIW, официальными языками Уганды на самом деле являются английский и суахили.
Мухаммад Алькарури

34
Ха, хорошее замечание. Как я американец. :( Я обновил пример для Испании и на этот раз немного поработал, чтобы убедиться, что английский не является официальным языком и там. Спасибо за подсказку.
Джереми Уиггинс,

@JeremyWiggins, о ваших последних двух строчках в вашем ответе, начиная со слов «это не помогает браузеру ....». Что делать, если веб-сайт является международным (интернационализированным), потребуется ли установка языкового тега?
Юстме

4
Что касается последних двух строк - если на странице используется перенос из CSS ( hyphens: auto), то langатрибут необходим, чтобы браузер мог выбрать правильный набор правил.
RobertT

1
Не только правильные языковые настройки помогают настроить язык для поисковых систем или программ чтения с экрана, но также и типографский эффект. Например, простые кавычки <q> </q> правильно интерпретируются только с правильными языковыми настройками, различающимися, например, между de-DE, de-CH, fr и fr-CH.
theking2

8

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


Ссылка мертва, если вы найдете замену, отметьте ее для отмены удаления
Тарин

5

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

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

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

язык-расширенный-сценарий-регион-вариант-расширение-частное использование


1
Некоторые программные приложения по умолчанию используют орфографию и локализацию США, когда выбраны общие варианты английского языка, например Windows делает это для пакета английского языка. technet.microsoft.com/en-us/library/cc766191(v=ws.10).aspx Windows (бесполезно) имеет один единственный языковой пакет для некоторых стран, которые говорят на нескольких языках, например, Нидерланды (голландский, а не французский), но четыре для Испании (каталонский, галисийский, баскский, испанский). Бельгия получает ноль, возможно, потому, что оба национальных языка являются языками большинства в других странах.
Mousey

2

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

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

Я интерпретирую это как означающий, что любой допустимый (согласно ISO 3166) двухбуквенный код действителен как вложенный тег. В RFC говорится:

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

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

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

Тип: вариант

Подтег: scouse

Описание: Scouse

Добавлен: 18.09.2006

Префикс: en

Комментарии: английский ливерпудийский диалект, известный как «скауз».

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


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

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

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


0

Схема XML требует, чтобы пространство имен xml было объявлено и импортировано перед использованием xml: lang (и других значений пространства имен xml). В RELAX NG предварительно объявляется пространство имен xml, как в XML, поэтому дополнительное объявление не требуется.


-1

Что ж, первый вопрос прост. Есть много ens (английских), но (в основном) только один английский (США). Можно было бы догадаться , есть en-CN, en-GB, en-AU. Думаю, там даже может быть австрийский английский, но это скорее «да», чем «да».


6
EN-UK is en-gb ... см. Здесь хороший список из 10 английских языков andiamo.co.uk/language-resources/iso-language-codes.aspx
Codemwnci

1
но есть только один зулус! : o)
Codemwnci
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.