Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.

Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.

Перекладач: Alexandr Shlapak

s_gotoW3cHome Інтернаціоналізація
 

Налаштування мовних уподобань в браузері

Аудиторія: користувачі, які хочуть налаштувати свій клієнтський додаток/браузер для автоматичного завантаження сторінок у даній мові коли це можливо (за умови, що є альтернативні сторінки на сервері, і що сервер налаштований для роботи з ними).

Питання

Як я можу використовувати мовні настройки браузера, щоб вказати мову, якою сервер повинен надіслати мені сторінки?

Ввідна інформація

Коли ваш браузер тягне документ з Інтернету, він відправляє запит на сервер, де зберігається інформація. Це відомо як HTTP запит. Із запитом, браузер посилає інформацію про свої налаштування мовних уподобань. Це уподобання мови сторінок, а не користувацького інтерфейсу браузера.

Частина HTTP запиту, яка тримає цю інформацію про мову якій віддається перевага називається Accept-Language заголовок запиту. Якщо сервер може повернути альтернативні версії сторінки або ресурсу на більш ніж одній мові, інформація може бути використана для завантаження сторінки на мові, якій ви надаєте перевагу, якщо це можливо, за допомогою процесу, відомого як HTTP content negotiation (обговорення контенту). Якщо є тільки одна версія сторінки на сервері, то ця версія буде витягнута. Якщо мова, яку ви запитуєте відсутня, то сервер повинен бути налаштований таким чином, щоб повертати мову за замовчуванням.

Основні браузери дозволяють вам змінювати мовні уподобання виражені вашим браузером у HTTP запиті. Саме значення має відповідати BCP 47 (Теги для Ідентифікації Мов). Як правило, дво- або трилітерний мовний код (наприклад fr для Французької), а потім слідують додаткові subcodes, які представляють країну (наприклад fr-CA представляє Французька, яка використовується в Канаді).

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

Примітка: Іноді сервер може визначити, яку мову послати до вас таким способом, що не покладається на Accept-Language інформацію. Наприклад, Google прагне використовувати IP інформацію, щоб визначити мову, яку ви отримаєте. Налаштування браузера обговорювані тут не впливають на content negotiation (обговорення контенту), який базується на такому механізмі.

Відповідь

Щоб налаштувати браузер для автоматичного завантаження сторінок на даній мові, якщо це можливо (за умови, що є альтернативні сторінки на сервері, і сервер налаштований на взаємодію між ними), вам потрібно контролювати інформацію, яка відправляється у Accept-Language HTTP заголовку при вашому запиті сторінки.

Більшість браузерів мають уподобання або опції, які дозволяють перевірити або змінити налаштування мовних уподобань. Однак, в операційній системі Mac OS X вам, можливо, знадобиться змінити налаштування системи.

Більшість браузерів дозволить вам вказати список мов, так що якщо ваш перший вибір не доступний, то ви можете вказати яку альтернативну мову спробувати, і в якому порядку. Як правило, коли у вас є кілька мов, браузер буде призначати qvalues для мов внизу списку. Це вид аналізу системи, що підтримується щоб допомогти серверу зрозуміти порядок надання вами переваги певним мовам. Ось приклад Accept-Language заголовку з кількома мовами. Данській мові надається превага. Якщо це не проходить, то запитується Британська Англійська, і нарешті, будь-який тип Англійскої мови.

Accept-Language: da, en-gb;q=0.8, en;q=0.7

Якщо ваші поточні настройки браузера використовують language тег із регіональним subtag, то ви повинні переконатися, що існує інший language тег, зазначений після нього лише із language subtag (як показано для Англійскої мови в прикладі). Дивіться примітки нижче для отримання додаткової інформації.

Деякі браузери дозволяють вам вказати користувацькі language теги, а не просто обрати з визначеного списку. Це може бути корисно, коли браузер не забезпечує вас тим, що вам потрібно в його визначених списках.

Решта цієї статті надає більш докладну інформацію про це.

Ви можете використовувати Інструмент для Перевірки Інтернаціоналізації щоб знайти, яка Accept-Language інформація насправді надсилається вашим браузером. Запустіть інструмент для перевірки на будь-якій сторінці, тоді на інформаційній панелі, подивіться під Request Headers (Заголовки Запиту) > Accept-Language. (Дивіться приклад використовуючи цю сторінку.)

Зміна ваших уподобань

Тут вказано як ви змінили б мовні налаштування для останніх версій ряду популярних браузерів на платформах Windows або Mac OS X. Якщо не вказано інше, ми використовуємо найновіші версії цих браузерів на момент написання цієї статті.

Ці шляхи час від часу змінюються, коли випускаються нові версії браузера. Коли ми дивилися останній раз - дані, що тут містяться були правильними. Будь ласка, дайте нам знати, якщо інформація застаріла.

Internet Explorer. Коли ви встановлюєте копію Internet Explorer версія 7+, ваші уподобання автоматично встановлюються відповідно до локалі користувача Windows, хоча вам надається можливість змінити їх під час першої установки.

Відзначимо, що, якщо ви не налаштували мовні уподобання вашого браузера, то під час зміни локалі користувача Windows уподобання браузера також зміняться. Якщо ви налаштували настройки браузера, то вони більше не слідуватимуть змінам в локалі користувача Windows. (настройки локалі користувача Windows дозволяють вам перемикати такі формати, як, який символ використовується як як десятковий роздільник, порядок інформації про дату, і т.д. за рахунок вибору різних локалей.)

За замовчуванням, значення що передаються в Accept-Language заголовок запита із IE7 далі зазвичай мають форму language-region (мова-регіон). Зазвичай не включена language-only (тільки мова) форма. Наприклад, якщо ви француз, то ваш Accept-Language заголовок представить серверу fr-FR. Це має значення для деяких серверів, особливо якщо ви додаєте інші language теги. Для отримання додаткової інформації дивіться нижче в розділі під назвою Рівні деталізації в language тегах.

Щоб змінити мовні уподобання перейдіть по Tools (Сервіс) > Internet Options (Властивості браузера) > General (tab) (Загальні) > Languages (Мови) > Language preference (Уподобання мови). В IE Ви можете також визначити свої власні користувацькі language теги: натисніть на кнопку 'Add' (додати) у діалоговому вікні мовних уподобань, і введіть свій language тег в поле 'User defined' (Інший).

Firefox. Щоб змінити мовні уподобання перейдіть по Tools (Інструменти) > Options (Настойки) (Windows) або Firefox > Preferences (Уподобання) (Mac OS X), і виберіть Content (tab) (Вміст) > Languages (Мови) > Choose (button) (кнопку Вибрати).

Ви можете додавати сюди мови із (довгого) визначеного набору, і Firefox відправить усі мови, що ви вибрали із Accept-Language заголовком в тому порядку, в якому ви їх розташуєте.

Ви не можете створювати користувацькі language теги використовуючи стандартний інтерфейс. (Однак, якщо ви експерт, то ви можете це зробити за допомогою about:config, використовуючи intl.accept_languages.)

Safari. В Mac OS X послана мова - те, що зазначено в мовних уподобаннях OS X системи. Щоб змінити ці уподобання перейдіть по System Preferences (Системні уподобання) > Language (Мова) & text (текст) > Language (мова). Ви можете мати довгий список мов, у цьому діалоговому вікні, але Safari буде відправляти тільки верхній елемент із Accept-Language заголовком. Ви не можете створювати користувацькі language теги.

У Windows, ви не можете змінити мову, яка була послана Safari. Мова послана із Accept-Language заголовком походить від настройок вашої системи.

Google Chrome. Щоб змінити мовні уподобання перейдіть по Options (Параметри) (Windows) або Chrome > Preferences (Уподобання) (Mac OS X), і виберіть Under the Bonnet > Web Content > Languages & Spellchecker settings (Розширені > Налаштування мов та перевірки правопису).

Ви можете додавати сюди мови із попередньо визначеного набору, і Chrome відправить всі мови, які ви виберете із Accept-Language заголовком в тому порядку, в якому ви їх розташуєте. Ви не можете створювати користувацькі language теги.

Opera. У Windows ви можете змінити ваші мовні уподобання перейшовши по Menu (Меню) > Settings (Настройки) > Preferences (Загальні настройки) > General (Основні) > Language (Мова) > Details (button) (кнопка Настройки).

Ви можете додавати мови із попередньо визначеного набору, або створити користувацький (User-defined) language тег. Opera відправить всі мови, які ви виберете із Accept-Language заголовком в тому порядку, в якому ви їх розташуєте в діалоговому вікні.

В Mac OS X, Opera бере список мов, для відправки з Accept-Language заголовком із мовних уподобань OS X системи. Щоб змінити мовні уподобання перейдіть по System Preferences (Системні уподобання) > Language (Мова) & text (текст) > Language (Мова). Ви можете мати довгий список мов, у цьому діалоговому вікні, і, на відміну від Safari і Chrome відправить їх усі з Accept-Language заголовком.

Ви не можете створювати користувацькі language теги використовуючи стандартний інтерфейс. (Знову ж таки, ви можете це зробити, якщо ви достатньо обізнані технічно, щоб використовувати opera:config і Network > HTTP Accept Language установку.)

Послідовності команд для додаткових браузерів можна знайти на сайті http://www.debian.org/intro/cn#mozilla

Вказівка ​​альтернатив

Ви можете звичайно вказати кілька альтернатив, які будуть розглядатися в порядку уподобань. Наступний приклад показує настройки в Firefox для тих, хто віддає перевагу Французьким сторінкам на Швейцарській мові, але якщо це не доступно погодиться на будь-які сторінки Французькою, Німецькою або Англійскою мову, в такому порядку.

Знімок екрана діалогового вікна Firefox для зміни Мовних Уподобань.

Часто браузери дозволятимуть вам вибрати мови, які ви хочете зі списку. Ви також можете мати можливість задавати користувацькі мовні уподобання. Якщо ви це зробите, то вам необхідно буде використовувати значення, які будуть визнані сервером (дивіться нижче)

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

Для забезпечення успіху вам необхідно налаштувати ваш браузер так, щоб він запитував як fr-CH так і fr, саме в такому порядку. (Дивіться наступний розділ.) Це змусить сервер спершу шукати Швейцарську Французьку версію, але якщо неможливо, то шукатиме Французьку версію.

Рівні деталізації в language тегах

Основне правило тут те, що якщо ваші списки мовних уподобань містять language тег, що містить дефіс, наприклад fr-CH (Французька, на якій говорять у Швейцарії), то ви повинні розглянути питання про включення додаткових language тегів без дефіса, тобто fr (Французька) у цьому випадку, відразу після.

Це тому що, якщо сервер слідує специфікації HTTP 1.1 буквально, то він не в змозі перевірити fr-CH навідміну від документа позначеного на сервері, як fr.

В цьому випадку на практиці такий сервер як Apache насправді все ще буде видавати результат. Це тому, що сервер додає до списку неявне уподобання fr.

Проте, це уподобання додане з дуже низьким пріоритетом. Хоча обхідний шлях Apache може вирішити проблему, але якщо ваш список мовних уподобань містить тільки одну мову, то ви можете зіткнутися з проблемами, у випадку якщо ви вказали декілька мов. Документація Apache пояснює це наступним чином:

Неявно, Apache буде додавати батьківську мову до прийнятного клієнтського списку мов із значенням дуже низької якості. Але врахуйте, що якщо клієнт робить запит "en-GB; q=0.9, fr; q=0.8", і сервер має документи позначені, як "en" і "fr", тоді "fr" документ буде повернуто. Це необхідно щоб забезпечити відповідність вимогам специфікації HTTP/1.1 та ефективніше працювати з правильно налаштованими клієнтами.

Давайте подивимося на приклад. Список мовних уподобань на малюнку в попередньому розділі завжди буде повертати Французький документ на сервер Apache, позначеним як fr, тому що вибір Французька [fr] чітко вказаний у списку, відразу ж після Французька/Швейцарська [fr-ch]. Якщо ми приберемо Французька [fr] зі списку, тим не менше, навіть якщо сервер Apache додає значення Французька [fr] неявно воно має більш низьку якість, ніж значення Німецька [de], і, отже, Німецька версія документу буде повернута, якщо не доступна Швейцарсько-Французька версія (навіть якщо буде доступна версія, що позначена як Французька).

Знімок екрана діалогового вікна Firefox для зміни Мовних Уподобань.

У браузері Internet Explorer вам, можливо, доведеться вказати простий language тег, як настройку що визначається користувачем. Інші браузери матимуть вибір для цього в їх наперед визначених списках.

Пошук і вибір користувацьких тегів

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

Інформація в цьому розділі в більшості випадків повинна відповідати вашим потребам. Якщо ви хочете дізнатися більше про синтаксис language тегів дивіться статтю Language теги в HTML і XML та Вибір Language Тега.

Ваш language тег має починатися з дво- або трилітерного коду, що називається subtag зі списку мов, зазначених у IANA Language Subtag Реєстрі. Потім ви можете додати другий subtag, щоб вказати, країну або регіон, якщо вам потрібно. Ці subtags також можна знайти в реєстрі. Перший і другий subtags повинні бути розділені дефісом.

Мова. IANA Language Subtag Реєстр - довгий текстовий файл. Щоб знайти language subtag, шукайте на Англійській по назві тієї мови. Якщо ми шукаємо 'French', ми знаходимо запис, який виглядає наступним чином:

Type: language
Subtag: fr
Description: French
Added: 2005-10-16
Suppress-Script: Latn

Зверніть увагу, що тип цього запису 'language'. Ви можете використовувати код поблизу, того що позначене, як 'Subtag', тобто 'fr'.

Замість того, щоб шукати в реєстрі файл, ви можете надати перевагу використанню інструмента Пошук по Language Subtag створеного Richard Ishida. Введіть назву мови або регіону, що ви шукаєте в полі Find (Знайти) і натисніть на кнопку, що знаходиться поруч.

Регіон. Якщо ви хочете вказати, що ви надаєте перевагу певному типу Французької, то в разі якщо вона доступна ви можете додати регіональний subtag, такий як CA для fr-CA (Французька, на якій говорять в Канаді). Щоб знайти регіональний тег шукайте по назві країни або регіону. Якщо ви шукаєте 'Canada', то ви знайдете запис, схожий на цей:

Type: region
Subtag: CA
Description: Canada
Added: 2005-10-16

Зазначимо, що тип цього subtag - 'region', що і є тим, що ви хочете. Використовуйте 'CA' subtag (в кінцевому підсумку fr-CA).

Subtags, яких слід уникати. Ви повинні уникати subtags, що описані в реєстрі як надлишкові або застарілі. Є й інші види subtag доступні в реєстрі, але, взагалі кажучи, дуже малоймовірно, що вам знадобиться використовувати їх в даний час з цією метою (тому що люди навряд чи використовуватимуть інші subtags для того, щоб відмітити документи на сервері).

Китайська. Реєстр також містить subtags для скриптів, але зазвичай вони не потрібні, і тому як правило, їх слід уникати. Одним із прикладів винятку є скриптовий тег для Китайської мови.

Китайці, хоча вони можуть говорити на взаємно незрозумілих мовах або діалектах, як правило, пишуть однаково те, що вони хочуть сказати, різниця тільки між Спрощеною та Традиційною формою Китайських ієрогліфів. Таким чином, якщо ви шукаєте Китайську інформацію ви можете просто вказати, який скрипт використовує текст: спрощений чи традиційний, а не специфічну мову.

Через відсутність в минулому способу послатися на скрипт в language subtags, сервери, як правило, повертали текст в традиційному скрипті якщо ваші мовні налаштування - zh-TW (Китайська якою говорять в Тайвані), і в спрощеному скрипті, якщо ваші налаштування - zh-CN (Китайська якою говорять на Материковому Китаї). Якщо ваші налаштування - zh-SG (Китайська якою говорять в Сінгапурі) або zh-HK (Китайська якою говорять в Гонконзі), то не ясно чи ви отримаєте назад те, що ви очікуєте (нормально спрощений і традиційний Китайський, відповідно).

IANA реєстр тепер також містить subtags для скриптів. Скриптові tags Hans і Hant в реєстрі дозволяють вам вказати уподобання для zh-Hans (спрощена Китайська) або zh-Hant (традиційна Китайська).

Можливо, це варто робити, оскільки люди починають маркувати свої ресурси за допомогою цих тегів на сервері. Однак, ви також повинні включити інші альтернативи, щоб охопити старі сервери, які все ще використовують старий підхід. Наприклад, якщо ви живете в Тайвані, ви можете налаштувати список уподобань наступним чином:

zh-Hant
zh-TW
zh

Зауважте, що в настройках браузера ви повинні взагалі уникати використання скриптових тегів для інших мов, особливо там, де Language Subtag Реєстр вказує поле Suppress-Script для тієї мови. Якщо ви використовуєте language тег із скриптовим subtag, скажімо, для Сербської мови, то ви повинні використовувати його в якості альтернативного language тега, тобто поряд з простим language тегом.

Доречі

Хорошим прикладом використання language negotiation (узгодження мови) є Прес-реліз W3C Spanish Office’s Standards Tour в 2004, який доступний на Іспанській, Баскській, Каталонській, та Галісійській, так само, як на Японській і Французькій. Щоб випробувати це, налаштуйте по черзі ваші уподобання для кожної із доступних мов Іберійського півострова і натискайте на це посилання після кожної зміни. Коди, які вам потрібні: es (Іспанська), eu (Баскська), ca (Каталонська) та gl (Галісійська ).

Ви також можете спробувати language negotiation (узгодження мови) з цим прикладом сторінки із узгодженою мовою: Прес-реліз CSS2 (доступний на Голландській, Англійській, Німецькій, і Японській).

Розкажіть нам про те, що Ви думаєте.

Підписатися на RSS джерело.

Нові джерела

Новини головної сторінки

Twitter (Новини головної сторінки)

‎@webi18n

Додаткові матеріали

Автор: Richard Ishida & Martin Dürst, W3C. Перекладач: Alexandr Shlapak.

Допустимий XHTML 1.0!
Допустимий CSS!
Кодування UTF-8!

Переклад Англійського контенту від 2011-03-22. Переклад останнього оновлення 2011-07-12 18:00 GMT

Для перегляду історії внесення змін до перекладу натисність qa-lang-priorities в блоге i18n.