Project

General

Profile

Feature #1873

Учитывание рекомендаций rfc2616 при формировании заголовков Accept-Language

Added by Mellon over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Plugins: Intermutko
Target version:
Start date:
02/01/2015
Due date:
% Done:

100%

Estimated time:
10.00 h

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.

#1

Updated by 0xd34df00d over 5 years ago

  • Target version set to 0.6.75
  • Status changed from New to Assigned
#2

Updated by 0xd34df00d over 5 years ago

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

#3

Updated by Mellon over 5 years ago

Это первый вариант:

В итоге предлагается следующая модель поведения.
1. При первом запуске приложения настройки языков берутся из текущей локали и явным оброзам обозначаются. То есть, эти настройки вписываются в файлы конфигурации
2. В последствии, пользователь может удалить ранее (пред)определенные настройки, и тогда заголовок Accept-Language посылаться не будет

Это второй вариант:

В форму настроек поместить опцию отключающую отправку заголовка Accept-Language.

Они не взаимосвязаны.
Во втором варианте всё остается как есть, кроме того, что перед отправкой заголовка смотрится значение этой опции, и если она истинна, то заголовок не отправляется. Ну и ещё, хорошо бы как-то показывать в интерфейсе, что настройка списка языков при включенном чекбоксе бессмысленна.

#4

Updated by 0xd34df00d over 5 years ago

  • Category changed from Core to Plugins: Intermutko
#5

Updated by 0xd34df00d over 5 years ago

  • Estimated time set to 10.00 h
#6

Updated by 0xd34df00d over 5 years ago

  • % Done changed from 0 to 100
  • Status changed from Assigned to Resolved
#7

Updated by Mellon over 5 years ago

  • Status changed from Resolved to Closed

Благодарю, отлично работает.

Also available in: Atom PDF