Hakim antara Cina ringkas dan tradisional
Saya ingin memutuskan sama ada untuk menyediakan fail Cina ringkas atau tradisional berdasarkan bahasa terima dalam pengepala http. Dalam chrome, chrome://settings/languages boleh menetapkan bahasa pilihan, dan penyemak imbas akan menetapkan pengepala bahasa terima dengan sewajarnya. Cara yang lebih baik untuk mengendalikannya ialah dengan menghuraikan medan, mendapatkan nilai q dan memilih bahasa yang paling sesuai berdasarkan keutamaan. Tetapi ia hanya digunakan untuk menyokong Cina Mudah dan Tradisional Saya ingin menggunakan helah: abaikan keutamaan selagi perkataan zh-hant, zh-tw, zh-hk dan sebagainya muncul dalam bahasa terima, kembali ke. Cina Tradisional, sebaliknya kembali kepada Cina Ringkas.
map $http_accept_language $lang { default zhs; ~zh-hant zht; ~zh-tw zht; ~zh-hk zht; }
Saya menggunakan hexo untuk menjana tapak web, dan fail sumber ditulis dalam bahasa Cina tradisional. Untuk 2015-10-06-nginx-accept-language-zhs-zht.html yang dijana oleh hexo generate, gunakan opencc untuk menukarnya kepada versi yang dipermudahkan: 2015-10-06-nginx-accept-language-zhs-zht. html.zhs .html. Bergantung pada keadaan, beberapa fail lain perlu ditukar, seperti atom.xml dan popular.json yang menyediakan fungsi "artikel paling banyak dibaca".
# 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
Nyatakan laluan yang memerlukan sokongan ringkas dan tradisional dalam fail konfigurasi 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; } # 其他需要简繁体支持的路由
Majukan ke halaman berbeza berdasarkan bahasa terima dalam pengepala permintaan http:
Pergi terus ke kod
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; }
Ujian:
http://www.findmaven.net ialah enjin carian untuk findjar dan findmaven
Tetapan penyemak imbas (Bahasa Inggeris )
Kembali ke
Tetapan Pelayar (Bahasa Cina)
Kembali
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi lompat halaman Nginx mengikut bahasa pelayar yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!