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