各位小夥伴
今天我們來分享的就是
項目的國際化
那麼我們開始吧!
國際化的概念在我們開發 javaWEB 專案的時候,專案可能涉及到在國外部署或者應用,也有可能會有國外的用戶對項目進行訪問 ,那麼在這種專案中,為客戶展現的頁面或者操作的資訊就需要使用不同的語言,這就是我們所說的項目國際化
( Internationalization 簡稱: i18n ).
國際化的原理國際化的核心基礎,就是我們在 http 請求的時候,在 request 裡面存在一個locale 物件來標識使用者流覽器的習慣語言,我們可以通過流覽器的語言設置來查看使用者的流覽器習慣語言.
比如:
語言設置為簡體中文 locale = zh_CN
語言設置為美式英文 locale = en_US
對於我們在控制台輸出的資訊,後臺代碼往前臺頁面輸出的提示資訊,頁面顯示資訊,我們都可以用一個代號來標識,當我們需要根據不同語言顯示的時候,我們將這個代號在不同語言中對應的值顯示.
map_CN 對象 Map
map_US 對象 Map
製作國際化資源檔(properties)
需要顯示多少種語言,就必須提前製作好每個語言對應的國際化資源檔
國際化資源檔的有個統一的命名規範:baseName+locale標識
比如:
i18n_zh_CN
代表中文資源檔
i18n_en_US
代表英文文資源檔
現在我們就把來做兩個簡單的資源檔
注意:
漢字在properties檔中是以Unicode編碼的形式存在的
國際化資源檔製作好以後,在 springmvc 的設定檔中進行國際化配置
class = "org.springframework.context.support.ResourceBundleMessageSource"> 引入spring標籤,將需要國際化的資訊用標籤顯示 這是我們的在 java 後臺獲取對應 key 的 value 值,jsp 頁面會通過 spring 提供國際化標籤來轉會 key 對應的 value 下面我們來測試一下效果(設置流覽器語言的過程就不演示了),流覽器語言這是中文(簡體),就是顯示漢語介面,設置英語(美式).就是出現英語. 當然在實際的項目中,我們看到一些網站上會有一些按鈕,點擊就可以切換網頁的顯示語言.下面我們來做一下. 切換網站語言 需求: 不需要更改流覽器的語言設置,在頁面設置一個連結來更改展現的語言 根據上面的學習,我們知道國際化主要是根據 http 請求裡面的 locale 對象來獲取流覽器設置的語言,再通過頁面來設置頁面使用哪種語言,我們需要設置一個全域變數 (session) 來保存我們連結跳轉需要的語言 每個 handler 都要獲取 session 裡面的語言設置 ---- 攔截器 SpringMVC 實現此種需求的原理 首先: springmvc 默認了一個國際化解析器 (LocaleResolve) ,當我們從 http 請求的標頭檔中獲取 locale 資訊,就調用這個預設的解析起來解析國際化資源 對於此種需求,springmvc 支持裝備一個攔截器,來動態的修改 locale 資訊,然後在攔截器裡面將 locale 資訊存入 session 在頁面添加兩個連結附帶 locale 資訊.
回顧一下操作步驟:
配置sessionLocaleReslover
配置這個攔截器,攔截帶有locale資訊的參數
在 url 請求中添加 locale 資訊,處理對應的國際化資訊請求
其他不變,jsp 和 java 的顯示內容步驟不變
看一下頁面效果:
好了,我們的項目國際化就完成了,總體來說,國際化就是一個體力活,你想支援幾種語言你就做幾個 properties 檔,當然你要是針對幾種語言開發幾套專案,我只能說土豪,我們做朋友吧!
友情提示
難度不算太大
但是實現起來
需要很大的耐心
有時間就給自己的項目
做個國際化吧!
拜拜!
好了,我們的項目國際化就完成了,總體來說,國際化就是一個體力活,你想支援幾種語言你就做幾個 properties 檔,當然你要是針對幾種語言開發幾套專案,我只能說土豪,我們做朋友吧!
友情提示
難度不算太大
但是實現起來
需要很大的耐心
有時間就給自己的項目
做個國際化吧!
拜拜!