Я бы хотел, чтобы nginx установил соответствующий заголовок accept-language в зависимости от запрошенного домена:
www.domain.ru набор ru-RU
www.domain.com набор en-US
www.domain.de набор de-DE
www.domain.eu ничего не делает, позволяя Django получить заголовок из браузера. Для 3 указанных выше доменов принудительно изменить заголовок accept-language, даже если английский пользователь вводит www.domain.ru (заставить использовать русский язык).
Вот мой конфиг nginx:
server {
listen 1.1.1.1;
server_name domain.eu www.domain.eu domain.de www.domain.de domain.com www.domain.com domain.ru www.domain.ru;
if($host ~* (.*)\.ru) {
set $http_accept_language 'ru-RU';
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://127.0.0.1:8888/;
}
}
Это часть моей конфигурации (запуск Django через gunicorn). Django проверяет заголовок accept-language
, если язык сеанса не установлен.