Urteil für vereinfachtes und traditionelles Chinesisch
Ich möchte anhand der Accept-Language im http-Header entscheiden, ob vereinfachte oder traditionelle chinesische Dateien bereitgestellt werden sollen. In Chrome kann chrome://settings/Language die bevorzugte Sprache festlegen, und der Browser legt den Header „Accept-Language“ entsprechend fest. Eine bessere Möglichkeit, damit umzugehen, besteht darin, das Feld zu analysieren, den q-Wert abzurufen und die am besten geeignete Sprache basierend auf der Priorität auszuwählen. Es wird jedoch nur zur Unterstützung von vereinfachtem und traditionellem Chinesisch verwendet. Ich möchte die Priorität ignorieren, solange die Wörter zh-hant, zh-tw, zh-hk usw. in der Accept-Sprache vorkommen Traditionelles Chinesisch, ansonsten Rückkehr zum vereinfachten Chinesisch.
map $http_accept_language $lang { default zhs; ~zh-hant zht; ~zh-tw zht; ~zh-hk zht; }
Ich verwende Hexo, um die Website zu erstellen, und die Quelldateien sind in traditionellem Chinesisch verfasst. Verwenden Sie für die von Hexo Generate generierte Datei 2015-10-06-nginx-accept-Language-zhs-zht.html opencc, um sie in die vereinfachte Version zu konvertieren: 2015-10-06-nginx-accept-Language-zhs-zht. html.zhs .html. Abhängig von der Situation müssen einige andere Dateien konvertiert werden, z. B. atom.xml und popular.json, die die Funktion „Meistgelesene Artikel“ bereitstellen.
# zsh cd ~/maskray.me/public opencc -c t2s.json -i atom.xml -o atom.xml.zhs.xml for i in **/*.html 20*; do # 选择需要简繁体支持的文件 c=${#${(s/.html/%)i}//[^%]/} # 计算子串`.html`出现次数 if (( $c <= 1 )); then # 出现一次的为原始文件,需要转换成简体 opencc -c t2s.json -i $i -o $i.zhs.html fi done
Geben Sie in der Nginx-Konfigurationsdatei die Route an, die Unterstützung für vereinfachtes und traditionelles Chinesisch erfordert:
location ~ ^/blog/20?? { try_files $uri.$lang.html $uri =404; add_header vary accept-language; } location ~ /atom.xml { try_files $uri.$lang.xml $uri =404; add_header vary accept-language; } location ~ \.json$ { try_files $uri.$lang.json $uri =404; add_header vary accept-language; } # 其他需要简繁体支持的路由
Weiterleitung zu verschiedenen Seiten entsprechend der Accept-Sprache im HTTP-Anforderungsheader:
Gehen Sie direkt zum Code
if ($http_accept_language ~* ^zh){ set $lang "/index_cn.jsp"; } if ($http_accept_language !~* ^zh){ set $lang "/index_en.jsp"; } location =/ { proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $remote_addr; proxy_pass http://localhost:8080$lang; }
Test:
http://www.findmaven.net ist eine Suchmaschine für findjar und findmaven
Rückkehr
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!