079-Spring Boot 國際化支持

很多項(xiàng)目中都需要國際化的支持,這里來使用springboot實(shí)現(xiàn)國際化,關(guān)于國際化i18n的各個國家語言的編碼,大家可以自行查詢,這里不列出,只配置英文en_US和中文zh_CN。


國際化的支持不需要加入額外的依賴,我們只加入一個web組件即可:

啟動類不用改,增加一個配置類:

配置中配置了兩個地方,一個是使用SessionLocaleResolver,并且配置了默認(rèn)的國際化語言為英語,另一個配置了國際化功能的參數(shù),通過這個參數(shù)可以選擇使用哪個國家的語言,比如需要使用中文,可以在url后面加上?lang=zh_CN。



下面來看一下配置文件,需要配置兩個參數(shù):

basename表示的意思是,國際化內(nèi)容的路徑,也就是i18n文件夾下面以num開頭的所有文件,i18n文件夾需要放在resources下面。basename可以支持多個參數(shù),用逗號隔開。

fallback-to-system-locale=false表示找不到對應(yīng)語言的時候,比如寫了lang=123,那么就是用默認(rèn)文件num.properties中的配置內(nèi)容。



根據(jù)上面的配置,我們要在resources下面新建一個i18n文件夾,并在文件夾下面新建三個文件,分別是?num.properties,?num_en_US.properties,?num_zh_CN.properties,在??num.properties中,我們輸入內(nèi)容? i18n.num=123,在??num_en_US.properties中,我們輸入內(nèi)容? i18n.num=456,在??num_zh_CN.properties中,我們輸入內(nèi)容? i18n.num=789,



所有的配置都完成了,國際化可以直接使用了,我們來寫一個接口測試一下:

MessageSource可以直接獲取國際化對應(yīng)的內(nèi)容,接口本身的寫法沒有任何影響,我們來測試一下,首先看一下中文:

沒有問題,再來看一下英文:

也沒有問題,再來看一下一種不存在的語言:

這時候走的就是國際化默認(rèn)的配置內(nèi)容!我們再來試試不傳入lang參數(shù)的結(jié)果:

可以看到返回的是英文的結(jié)果,也就是我們在配置類中配置的默認(rèn)的國際化語言。



注意,在瀏覽器中測試時,受cookie的影響,不輸入語言參數(shù)的結(jié)果并不一定是設(shè)置的結(jié)果,如果想要達(dá)到這種效果,需要每次清除cookie。



代碼地址: https://gitee.com/blueses/spring-boot-demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容