Яка різниця між <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
Ха, хороший пункт. Як американський з мене. :( Я оновив приклад до Іспанії, і цього разу зробив невелику роботу, щоб переконатися, що англійська мова теж не є офіційною мовою. Дякую за пораду.
Jeremy Wiggins

@JeremyWiggins, про ваші останні 2 рядки у вашій відповіді, починаючи з "це не допомагає браузеру ....". Що робити, якщо веб-сайт є міжнародним (інтернаціоналізованим), все-таки знадобиться встановлення мовного тегу?
Юстме

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

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

8

Так, ви можете використовувати будь-який код країни, але це не означає, що веб-переглядач чи інше програмне забезпечення розпізнають його чи роблять щось інакше через нього. Наприклад, екранний зчитувач може мати те ж саме "en-US" та "en-GB", якщо вони підтримують американський акцент лише англійською мовою. Ще одне програмне забезпечення, яке має два чіткі голоси, може змінюватись відповідно до коду країни.


Посилання є мертвим, якщо ви знайдете заміну, то, будь ласка, позначте це для відмови
Taryn

5

Це має допомогти: http://www.w3.org/International/articles/language-tags/

Золоте правило при створенні мовних тегів - тримати тег якомога коротше. Уникайте регіону, сценарію чи інших підтегів, за винятком випадків, коли вони додають корисну відмітну інформацію. Наприклад, використовуйте ja для японського, а не ja-JP, якщо немає конкретної причини, що вам потрібно сказати, що це японська мова, як говорять в Японії, а не деінде.

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

мова-extlang-script-region-variant-extension-privateuse


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

2

RFC 3066 надає подробиці дозволених значень (наголоси та додані посилання):

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

Я трактую, що як будь-який дійсний (згідно ISO 3166) 2-буквений код є дійсним як підтег. RFC продовжує заявляти:

Теги з другими підтегами від 3 до 8 букв можуть бути зареєстровані в IANA відповідно до правил глави 5 цього документа.

До речі, це виглядає як помилка друку, оскільки глава 3, здається, стосується процесу реєстрації, а не глава 5.

Швидкий пошук реєстру IANA виявляє дуже довгий список усіх доступних мовних підтегів. Ось один приклад зі списку (який би використовувався як en-scouse):

Тип: варіант

Підтег: scouse

Опис: Scouse

Додано: 18.09.2006

Префікс: en

Коментарі: англійський ліверпудський діалект, відомий як "Scouse"

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


Корисність деяких із цих (я б сказав, переважна більшість з них) тегів, що стосується документів, призначених для відображення в браузері, обмежена. У специфікації W3C Internationalization просто зазначено:

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

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


0

Схема XML вимагає, щоб перед використанням xml: lang (та інших значень простору імен xml) простір імен 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.