Бих искал nginx да зададе подходящ хедър за приемлив език в зависимост от заявения домейн:
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
заглавката, ако езикът на сесията не е зададен.