Можно ли переопределить заголовок языка принятия клиента, чтобы запросы подзапроса были на новом языке?
Наши бизнес-требования гласят, что пользователь должен иметь возможность изменять свои языковые предпочтения без изменения настроек браузера или системы. Наша реализация представляет собой простой интерфейс, который просит их выбрать язык. Первоначально я собирался просто сохранить их выбор в значении cookie, проверить его и установить UI Culture, но мне интересно, есть ли более простой способ.
В данный момент я пытаюсь выяснить, могу ли я просто принять их выбор, а затем установить язык ответа в ответе, чтобы он использовался в последующих запросах. Прямо сейчас я устанавливаю заголовок accept-language в ответе, но следующий запрос перезаписывает его значениями браузера (например, en-US,en;q=0,8"). Возможно ли это и как мне это сделать? Есть ли другие идеи? для достижения этой функциональности также приветствуется.
1 ответ
Да, вы можете переопределить эффект Accept-Language
HTTP заголовок. Точнее, такой заголовок не действует как таковой. Его единственная роль - участвовать в согласовании языка, если сервер выполняет такое согласование. Вам не нужно ничего использовать, чтобы переопределить это; просто не используйте его или используйте таким образом, чтобы другие настройки переопределяли его.
Использование куки является распространенным методом. Не идеальный, но часто лучший подход на практике. При желании вы можете использовать Accept-Language
заголовок для определения опции по умолчанию в меню выбора языка, но это сложнее, чем думает большинство людей. В заголовке, как правило, указывается список языков или локалей с "показателями качества", а не только язык.
Там нет смысла в настройке Accept-Language
в ответе HTTP, так как Accept-Language
только заголовок запроса.