您的位置:首頁>正文

涉及國外的專案怎麼辦?帶你把項目國際化

各位小夥伴

今天我們來分享的就是

項目的國際化

那麼我們開始吧!

國際化的概念

在我們開發 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 的設定檔中進行國際化配置

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 檔,當然你要是針對幾種語言開發幾套專案,我只能說土豪,我們做朋友吧!

友情提示

難度不算太大

但是實現起來

需要很大的耐心

有時間就給自己的項目

做個國際化吧!

拜拜!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示