So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

王林
Freigeben: 2023-05-13 13:37:11
nach vorne
1128 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
}

# 其他需要简繁体支持的路由
Nach dem Login kopieren


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;
}
Nach dem Login kopieren

Test:
http://www.findmaven.net ist eine Suchmaschine für findjar und findmaven

Rückkehr So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

So konfigurieren Sie den Nginx-Seitensprung für verschiedene Browsersprachen

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage