Feature #1873
closedУчитывание рекомендаций rfc2616 при формировании заголовков Accept-Language
100%
Description
1. The language quality factor.
Согласно http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 может указываться в заголовке при множественных значениях. А может не указываться, тогда предполагается, что для указанных языковых тегов q=1, и эти языки одинаково приемлимы. В реале же большинство (?) серверов при этом учитывает порядок тегов, но вовсе не обязаны этого делать. Следовательно, есть некий смысл, всё-таки указывать этот фактор.
2. Нестрогое указание диапазона языков.
Note: When making the choice of linguistic preference available to the user, we remind implementors of the fact that users are not familiar with the details of language matching as described above, and should provide appropriate guidance. As an example, users might assume that on selecting "en-gb", they will be served any kind of English document if British English is not available. A user agent might suggest in such a case to add "en" to get the best matching behavior.
Таким образом, имеет смысл введение в список нулевого значения для подвида языка, при выборе которого будет указана только первая часть тега.
3. Требование приватности.
Некоторые положения http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 и http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.4 могут быть истолкованы так, что пользователь должен иметь возможность настройки исключающей отправку этого заголовка.
В итоге предлагается следующая модель поведения.
1. При первом запуске приложения настройки языков берутся из текущей локали и явным оброзам обозначаются. То есть, эти настройки вписываются в файлы конфигурации
2. В последствии, пользователь может удалить ранее (пред)определенные настройки, и тогда заголовок Accept-Language посылаться не будет
Хотя этот вариант логичен, но несет проблему миграции настроек на новую логику, то есть без миграции текущие установки приложения (когда при отсутствии настроек посылается хаголовок со значениями из локали) не будут посылать заголовок вовсе. Если эта проблема представляется трудноразрешимой, есть обходной вариант:
В форму настроек поместить опцию отключающую отправку заголовка Accept-Language.
Updated by 0xd34df00d almost 10 years ago
- Status changed from New to Assigned
- Target version set to 0.6.75
Updated by 0xd34df00d almost 10 years ago
Мигрировать и так надо, потому что иначе после полного очищения настроек они будут заполняться заново, надо запоминать, заполнялись уже или нет.
Updated by Mellon almost 10 years ago
Это первый вариант:
В итоге предлагается следующая модель поведения.
1. При первом запуске приложения настройки языков берутся из текущей локали и явным оброзам обозначаются. То есть, эти настройки вписываются в файлы конфигурации
2. В последствии, пользователь может удалить ранее (пред)определенные настройки, и тогда заголовок Accept-Language посылаться не будет
Это второй вариант:
В форму настроек поместить опцию отключающую отправку заголовка Accept-Language.
Они не взаимосвязаны.
Во втором варианте всё остается как есть, кроме того, что перед отправкой заголовка смотрится значение этой опции, и если она истинна, то заголовок не отправляется. Ну и ещё, хорошо бы как-то показывать в интерфейсе, что настройка списка языков при включенном чекбоксе бессмысленна.
Updated by 0xd34df00d almost 10 years ago
- Category changed from Core to Plugins: Intermutko
Updated by 0xd34df00d almost 10 years ago
- Status changed from Assigned to Resolved
- % Done changed from 0 to 100
Applied in changeset main|a2d9b04f2edf997c57359271570cab1bea795408.
Updated by Mellon almost 10 years ago
- Status changed from Resolved to Closed
Благодарю, отлично работает.