Maison  >  Article  >  Opération et maintenance  >  Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

王林
王林avant
2023-05-13 13:37:111110parcourir

Jugement chinois simplifié et traditionnel

Je souhaite décider si je dois fournir des fichiers chinois simplifiés ou traditionnels en fonction de la langue d'acceptation dans l'en-tête http. Dans Chrome, chrome://settings/linguals ​​peut définir la langue préférée et le navigateur définira l'en-tête accept-lingual en conséquence. Une meilleure façon de gérer ce problème consiste à analyser le champ, à obtenir la valeur q et à sélectionner la langue la plus appropriée en fonction de la priorité. Mais il n'est utilisé que pour prendre en charge le chinois simplifié et traditionnel. Je souhaite utiliser une astuce : ignorez la priorité. Tant que les mots zh-hant, zh-tw, zh-hk, etc. apparaissent dans la langue d'acceptation, revenez à. Chinois traditionnel, sinon revenez au chinois simplifié.

map $http_accept_language $lang {
 default zhs;
 ~zh-hant zht;
 ~zh-tw zht;
 ~zh-hk zht;
}

J'utilise hexo pour générer le site Web, et les fichiers sources sont écrits en chinois traditionnel. Pour le 2015-10-06-nginx-accept-language-zhs-zht.html généré par hexo generate, utilisez opencc pour le convertir en version simplifiée : 2015-10-06-nginx-accept-language-zhs-zht. html.zhs .html. Selon la situation, certains autres fichiers doivent être convertis, tels que atom.xml et popular.json qui fournissent la fonction « articles les plus lus ».

# 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

Spécifiez l'itinéraire qui nécessite la prise en charge du chinois simplifié et traditionnel dans le fichier de configuration nginx :

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

# 其他需要简繁体支持的路由


Transférer vers différentes pages selon la langue d'acceptation dans l'en-tête de la requête http :
Aller directement au 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 est un moteur de recherche pour findjar et findmaven
Paramètres du navigateur (anglais)

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Retour

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Paramètres du navigateur (chinois)

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Retour

Comment configurer le saut de page Nginx en fonction des différentes langues du navigateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer