Nginx根據不同瀏覽器語言配置頁面跳轉的方法

2022-09-25 18:09:10 字數 1641 閱讀 2144

當我們開啟很多**時,可能大家會發現,它會根據你使用的語言自動判斷並跳轉到不同的語言介面。例如:google 也就是你用不同的語言,那麼輸入google首頁就可以自動轉向你使用的語言。在這個網路普及的時代,外貿的主要途徑一定是網路。也許你的企業**既有中文版本,同時也有英文版本(如果你的公司有外貿業務)。那麼www.cppcns.com他們的**是怎樣實現這個功能呢?下面我們來研究下web伺服器的header,http_accept_language是伺服器所接收的語言,一般來說是伺服器的語言。在**可以看到,firefox在安裝多個語言包的時程式設計客棧候,會傳送多個語言資訊,但是首選的肯定是在第乙個。

簡體和繁體判斷

這個功能開啟很久了,但直到昨天才發現遺漏了 atom.xml ……

我想根據http首部的 accept-language 決定提供簡體或繁體的檔案。在chrome中, chrome://settings/languages 可以設定偏好語言,瀏覽器會據此設定 accept-language 首部。較好的處理方式是解析該欄位,獲取qvalue,根據優先順序選取最恰當的語言。但僅用於支援簡繁體,我想用取巧的辦法:忽略優先順序,只要 accept-language 裡出現了 zh-hant 、 zh-tw 、 zh-hk 等字樣,就返回繁體,否則返回簡體。

我用hexo生成**,原始檔用繁體寫成。對於 hexo generate 生成得到的 2015-10-06-nginx-accept-language-zhs-zht.html ,用 opencc 轉換得到簡體版本: 2015-10-06-nginx-accept-language-zhs-zht.html.zhs.html 。視情況還需要轉換其他一些檔案,比如 atom.xml 、 提供「閱讀最多文章」功能 的 popular.json 。

# zsh

cd ~/maskray.me/public

opencc -c t2s.json -i atom.xml -o atom.xml.zhs.xml

for i in **/*.html 20*; do # 選擇需要簡繁體支援的檔案

c=$//[^%]/} # 計算子串`.html`出現次數

if (( $c <= 1 )); then # 出現一次的為原始檔案,需要轉換成簡體

opencc -c t2s.json -i $i -o $i.zhs.html

fidone

在nginx配置檔案中指定需要簡繁體支援的路由:

location ~ ^/blog/20??

location ~ /atom.xml

location ~ \.json$

# 其他需要簡繁體支援的路由

根據http請求頭中的accept-language**到不同的頁面:

直接上**

測試:是乙個findjar和findm**en的搜尋引擎

瀏覽器設定(英文)

返回瀏覽器設定(中文)

返回本文標題: nginx根據不同瀏覽器語言配置頁面跳轉的方法

本文位址: /jiqiao/fuwuqi/147802.html

根據不同瀏覽器寫不同css

最近幾天幫朋友弄了個簡單的生日頁面放在我的github部落格上,就有了不同瀏覽器可能發生介面的錯亂,如何解決?當然,作為乙個小白,我的思路是通過js判斷瀏覽器型別,再用jquery變換相應的樣式。事實證明是可以的。參考這裡只是進行最簡單的判別 例子 function return false if ...

不同瀏覽器不同效果

1.在internet explorer 8,opera 9,chrome,firefox 2 3,and safari下,新增display block會讓有序或無序列表中li元素的專案編號消失。但在ie6和ie7下,新增display block專案符號依舊存在。2.transition tra...

根據瀏覽器history模擬瀏覽器後退按鈕顯隱問題

措施 具體思路如下 1.開始開啟頁面時,瀏覽器的history.length為1,按鈕隱藏 2.當history.length 1時,點選按鈕執行 history.go 1 3.後退到歷史記錄棧中第一幀時,按鈕隱藏。出於瀏覽器安全性考慮,history中沒有給出屬性判斷其當前頁的位置,所以,在開始開...