мова + значення регіону атрибута lang5 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: вони пропонують французьку та французьку французькі версії своїх веб-сайтів з (трохи) різним змістом, в той час як langзначення HTML залишається тим самим:

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

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

Який рекомендований / стандартний спосіб опису вмісту, локалізованого за допомогою language+regionпідходу в HTML5?

Відповіді:


5

W3C пропонує це дуже довге керівництво щодо вибору мовних тегів / підтегів.

Важливі біти:

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

Ця стаття надає поради щодо вибору компонентів мовного тегу. Для огляду понять, визначених у BCP 47, див. Теги мови в HTML та XML .

...

Доступні інструменти, які надають додаткову допомогу під час пошуку в реєстрі, наприклад, інструмент пошуку піддослідної мови Річарда Ішиди .

...

Переконайтеся, що володієте правильною мовою. Іноді варто перевірити кілька альтернатив. Марк Девіс, співавтор BCP47, пише: "Часто незрозуміло, яким мовним ідентифікатором користуватися. Наприклад, те, що більшість людей називають панджабі в Пакистані, насправді має код" lah "та формальну назву" Lahnda ". Є багато інші випадки, коли те саме ім’я використовується для різних мов, або ім’я, яке шукають люди, не вказане в реєстрі IANA ".

Ви можете шукати інформацію про мову в Етнолозі SIL та перехресне посилання на Вікіпедію . Етнолог використовує ті ж трибуквені коди, що й 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 є найкращою деталізацією, яку ви можете досягти за ці дні в програмному забезпеченні; досить часто має значення лише основний код (тут, пт).

Немає доказів того, що пошукові системи насправді звертають увагу на будь-які декларації мовного коду, наприклад, langатрибути. Інші програмні засоби, такі як гіфенатори, перевірки орфографії, синтезатори мови та алгоритми вибору шрифту за замовчуванням, можуть враховувати langатрибути. Але пошукові системи виконують свої евристичні аналізи на основі фактичного змісту.

Важко звинувачувати їх у цьому, оскільки це дає кращі результати, ніж довіряти langатрибутам. Наприклад, багато інструментів створення автоматично генерують lang="en"незалежно від фактичного вмісту, не повідомляючи автора.


2

[Це не моя найсильніша область, тому я просто цитую тут документацію, але, здається, ви щось не помітили.]

Специфікація HTML5 вимагає, щоб langзначення було дійсним тегом BCP 47 . У цьому документі відповідний біт здається у розділі 3.4:

Наприклад, реалізація може зіставити розширені діапазони мови до основних діапазонів. Іншою можливістю буде реалізація повернення відповідного тегу, який є першим у порядку ASCII. Якщо мовний діапазон був "* -CH" ("CH" являє собою Швейцарію), а набір тегів включав "de-CH" (німецька як використовується у Швейцарії), "fr-CH" (французька, швейцарська) та "це -CH "(італійська, Швейцарія), тоді тег" de-CH "буде повернуто.

... що, дивлячись на це, це в основному те, що ви отримали від специфікації HTML 4 із посиланням на RFC1766, лише набагато більш детально.


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

Специфікація HTML 5 просто посилається на необхідний формат. Цитований біт посилається на посилання BCP 47, в якому форматі він фактично визначений.
Су '
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.