Инструменты пользователя

Инструменты сайта


accept-language

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

accept-language [2020/06/13 13:44] (текущий)
Строка 1: Строка 1:
 +====== Accept-Language определение локали в браузере ======
 +{{htmlmetatags>
 +metatag-description=(Описание заголовка HTTP запроса Accept-Language. Хорошо ли использовать заголовок HTTP Accept-Language для определения локали?)
 +}}
 +
 +  * [[ISO]]
 +  * [[RFC]]
 +  * [[http://www.w3.org/International/questions/qa-lang-priorities|W3C: Настройка языковых предпочтений в браузере]]
 +  * [[http://www.w3.org/International/questions/qa-accept-lang-locales.ru.php|W3C: Хорошо ли использовать заголовок HTTP Accept-Language для определения локали пользователя?]]
 +  * [[wpru>ISO 639]] ISO 639 — международный стандарт ISO сокращений названий языков. Содержит следующие списки: ISO 639-1 (2002) — двухбуквенные коды основных языков; ISO 639-2 (1998) — трёхбуквенные; ISO 639-3 (2007) — трёхбуквенные; ISO 639-5 (2008) — трёхбуквенные групп языков.
 +  * [[wpru>ISO 639-1]] ISO 639-1:2002 «Коды для обозначения названий языков, часть 1: коды Альфа-2»
 +  * [[http://www.rfc-editor.org/rfc/bcp/bcp47.txt|BCP: 47 Tags for Identifying Languages]] [[RFC]] 5646
 +  * [[http://schneegans.de/lv/|BCP 47 Validator]]
 +  * [[http://www.w3.org/International/articles/language-tags/|W3C: Language тэги в HTML и XML]]
 +  * [[http://www.w3.org/International/articles/bcp47/Overview.ru.php|W3C: Понимание Новых Language Тэгов]]
 +
 +Параметр [[HTTP]]  **Accept-Language** - поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях.
 +
 +{{ ::switching_on_http_accept-language.png?nolink |}}
 +<note tip>Не хорошо использовать только HTTP Accept-Language заголовок для того, чтобы определить локаль пользователя. Если вы используете исключительно Accept-Language, то вы можете ограничить пользователя в выборе вариантов языков, которые ему нравятся. Во-первых хорошим началом может стать использование значения Accept-Language для определения региональных настроек, но убедитесь, что вы позволили при необходимости изменять язык и точнее указывать культурные настройки. Сохраняйте результаты в базе данных или в cookie для позднейших посещений.</note>
 +
 +
 +Поле заголовка запроса Accept-Language сходно с полем Accept, но регламентирует набор естественных языков, которые предпочтительны в отклике на запрос.<file>
 +Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] )
 +
 +language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )
 +</file>Каждому набору языков может быть поставлено в соответствие значение качества, которое представляет собой оценку предпочтений пользователя для языков, специфицированных в диапазоне. По умолчанию значение качества "q=1". Например:<file>
 +Accept-Language: da, en-gb;q=0.8, en;q=0.7
 +</file>будет означать: "Я предпочитаю датский, но восприму британский английский и другие типы английского". Список языков согласуется с языковой меткой, если он в точности равен метке или, если он в точности равен префиксу метки, такому как первый символ метки, за которым следует символ "-". Специальный список "*", если он присутствует в поле Accept-Language, согласуется с любой меткой.
 +
 +<note>Это использование префикса не предполагает, что языковые метки присвоены языкам таким образом, что, если пользователь понимает язык с определенной меткой, то он поймет все языки, имеющие метки с одним и тем же префиксом. Правило префикса просто позволяет использовать префиксные метки для случаев, когда это справедливо.</note>
 +
 +Фактор качества, присваиваемый языковой метке с помощью поля Accept-Language, равен значению качества самого длинного списка языков в поле. Если в поле отсутствует список языков, фактору качества присваивается значение нуль. Если в запросе отсутствует заголовок Accept-Language, серверу следует предполагать, что все языки приемлемы в равной мере. Если заголовок Accept-Language имеется, тогда все языки, которым присвоен фактор качества больше нуля, приемлемы.
 +
 +Посылка заголовка Accept-Language с полным списком языковых предпочтений пользователя в каждом запросе может восприниматься как нарушение принципов конфиденциальности.
 +
 +<note tip>Так как степень интеллигентности в высшей степени индивидуальна, рекомендуется, чтобы приложения клиента делали выбор языковых предпочтений доступным для пользователя. Если выбор не сделан доступным, тогда поле заголовка Accept-Language не должно присутствовать в запросе.</note>
 +====== ru_UA отличия от локали ru_RU ======
 +Говоря просто: ru_UA - язык_СТРАНА.
 +
 +ru_UA - русская локаль для Украины. 
 +
 +uk_UA - украинская локаль для Украины. Это локаль для украинского языка. Но для этой локали нужно сделать нормальную украинскую локализацию. При её выборе большинство приложений будут на английском из-за отсутствия украинских mo- файлов.
 +
 +Локаль ru_UA отличается от локали ru_RU всего тремя буквами, а именно і - русское и, є -русское е, и ї - нечто среднее между й и ё. В полноценной локали  ua_UA буквы (фонетические звуки) г, х, з, c, ф, они правильно пишутся с черточками над верхом буквы.
  
accept-language.txt · Последнее изменение: 2020/06/13 13:44 (внешнее изменение)