精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot 國際化踩坑指南

開發 前端
在 Spring Boot 中得到進一步的簡化,在 Spring Boot 中,我們也可以通過寥寥數行代碼就能方便的實現國際化功能,接下來松哥就來和大家說一說 Spring Boot 中的國際化。

國際化,也叫 i18n,為啥叫這個名字呢?因為國際化英文是 internationalization ,在 i 和 n 之間有 18 個字母,所以叫 i18n。我們的應用如果做了國際化就可以在不同的語言環境下,方便的進行切換,最常見的就是中文和英文之間的切換,國際化這個功能也是相當的常見。

在 Spring 中,就通過 AcceptHeaderLocaleResolver 對國際化提供了支持,開發者通過簡單配置,就可以在項目中直接使用國際化功能了。

這一支持,在 Spring Boot 中得到進一步的簡化,在 Spring Boot 中,我們也可以通過寥寥數行代碼就能方便的實現國際化功能,接下來松哥就來和大家說一說 Spring Boot 中的國際化。

首先,需要給大家先說明一點,項目中的國際化我們往往需要多方面的支持,例如后端做國際化、前端頁面也要做國際化,共同搭配,才能真正實現國際化的功能。本文我先來和各位小伙伴們介紹 Spring Boot 中的國際化,后面我們再來介紹 Vue 的國際化,最后,再把這兩個結合應用到我們的 vhr 項目中,所以前后一共可能有三篇文章,本文是第一篇。

1.基本使用

Spring Boot 和 Spring 一脈相承,對于國際化的支持,默認是通過 AcceptHeaderLocaleResolver 解析器來完成的,這個解析器,默認是通過請求頭的 Accept-Language 字段來判斷當前請求所屬的環境的,進而給出合適的響應。

所以在 Spring Boot 中做國際化,這一塊我們可以不用配置,直接就開搞。

首先創建一個普通的 Spring Boot 項目,添加 web 依賴即可。項目創建成功后,默認的國際化配置文件放在 resources 目錄下,所以我們直接在該目錄下創建四個測試文件,如下:

圖片

我們的 message 文件是直接創建在 resources 目錄下的,IDEA 在展示的時候,會多出一個 Resource Bundle,這個大家不用管,千萬別手動去創建這個目錄。

messages.properties 這個是默認的配置,其他的則是不同語言環境下的配置,en_US 是英語(美國),zh_CN 是中文簡體,zh_TW 是中文繁體(文末附錄里邊有一個完整的語言簡稱表格)。

四個文件創建好之后,第一個默認的我們可以先空著,另外三個分別填入以下內容:

messages_zh_CN.properties

user.name=江南一點雨

messages_zh_TW.properties

user.name=江南壹點雨

messages_en_US.properties

user.name=javaboy

配置完成后,我們就可以直接開始使用了。在需要使用值的地方,直接注入 MessageSource 實例即可。

在 Spring 中需要配置的 MessageSource 現在不用配置了,Spring Boot 會通過 org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration 自動幫我們配置一個 MessageSource 實例。

創建一個 HelloController ,內容如下:

@RestController
public class HelloController {
@Autowired
MessageSource messageSource;
@GetMapping("/hello")
public String hello() {
return messageSource.getMessage("user.name", null, LocaleContextHolder.getLocale());
}
}

在 HelloController 中我們可以直接注入 MessageSource 實例,然后調用該實例中的 getMessage 方法去獲取變量的值,第一個參數是要獲取變量的 key,第二個參數是如果 value 中有占位符,可以從這里傳遞參數進去,第三個參數傳遞一個 Locale 實例即可,這相當于當前的語言環境。

接下來我們就可以直接去調用這個接口了。

默認情況下,在接口調用時,通過請求頭的 Accept-Language 來配置當前的環境,我這里通過 POSTMAN 來進行測試,結果如下:

圖片

小伙伴們看到,我在請求頭中設置了 Accept-Language 為 zh-CN,所以拿到的就是簡體中文;如果我設置了 zh-TW,就會拿到繁體中文:

圖片

是不是很 Easy?

2.自定義切換

有的小伙伴覺得切換參數放在請求頭里邊好像不太方便,那么也可以自定義解析方式。例如參數可以當成普通參數放在地址欄上,通過如下配置可以實現我們的需求。

@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
registry.addInterceptor(interceptor);
}
@Bean
LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
return localeResolver;
}
}

在這段配置中,我們首先提供了一個 SessionLocaleResolver 實例,這個實例會替換掉默認的 AcceptHeaderLocaleResolver,不同于 AcceptHeaderLocaleResolver 通過請求頭來判斷當前的環境信息,SessionLocaleResolver 將客戶端的 Locale 保存到 HttpSession 對象中,并且可以進行修改(這意味著當前環境信息,前端給瀏覽器發送一次即可記住,只要 session 有效,瀏覽器就不必再次告訴服務端當前的環境信息)。

另外我們還配置了一個攔截器,這個攔截器會攔截請求中 key 為 lang 的參數(不配置的話是 locale),這個參數則指定了當前的環境信息。

好了,配置完成后,啟動項目,訪問方式如下:

圖片

我們通過在請求中添加 lang 來指定當前環境信息。這個指定只需要一次即可,也就是說,在 session 不變的情況下,下次請求可以不必帶上 lang 參數,服務端已經知道當前的環境信息了。

3.其他自定義

默認情況下,我們的配置文件放在 resources 目錄下,如果大家想自定義,也是可以的,例如定義在 resources/i18n 目錄下:

圖片

但是這種定義方式系統就不知道去哪里加載配置文件了,此時還需要 application.properties 中進行額外配置(注意這是一個相對路徑):

spring.messages.basename=i18n/messages

另外還有一些編碼格式的配置等,內容如下:

spring.messages.cache-duration=3600
spring.messages.encoding=UTF-8
spring.messages.fallback-to-system-locale=true

spring.messages.cache-duration 表示 messages 文件的緩存失效時間,如果不配置則緩存一直有效。

spring.messages.fallback-to-system-locale 屬性則略顯神奇,網上竟然看不到一個明確的答案,后來翻了一會源碼才看出端倪。

這個屬性的作用在 org.springframework.context.support.AbstractResourceBasedMessageSource#getDefaultLocale 方法中生效:

protected Locale getDefaultLocale() {
if (this.defaultLocale != null) {
return this.defaultLocale;
}
if (this.fallbackToSystemLocale) {
return Locale.getDefault();
}
return null;
}

從這段代碼可以看出,在找不到當前系統對應的資源文件時,如果該屬性為 true,則會默認查找當前系統對應的資源文件,否則就返回 null,返回 null 之后,最終又會調用到系統默認的 messages.properties 文件。

4.附錄

搜刮了一個語言簡稱表,分享給各位小伙伴:

語言

簡稱

簡體中文(中國)

zh_CN

繁體中文(中國臺灣)

zh_TW

繁體中文(中國香港)

zh_HK

英語(中國香港)

en_HK

英語(美國)

en_US

英語(英國)

en_GB

英語(全球)

en_WW

英語(加拿大)

en_CA

英語(澳大利亞)

en_AU

英語(愛爾蘭)

en_IE

英語(芬蘭)

en_FI

芬蘭語(芬蘭)

fi_FI

英語(丹麥)

en_DK

丹麥語(丹麥)

da_DK

英語(以色列)

en_IL

希伯來語(以色列)

he_IL

英語(南非)

en_ZA

英語(印度)

en_IN

英語(挪威)

en_NO

英語(新加坡)

en_SG

英語(新西蘭)

en_NZ

英語(印度尼西亞)

en_ID

英語(菲律賓)

en_PH

英語(泰國)

en_TH

英語(馬來西亞)

en_MY

英語(阿拉伯)

en_XA

韓文(韓國)

ko_KR

日語(日本)

ja_JP

荷蘭語(荷蘭)

nl_NL

荷蘭語(比利時)

nl_BE

葡萄牙語(葡萄牙)

pt_PT

葡萄牙語(巴西)

pt_BR

法語(法國)

fr_FR

法語(盧森堡)

fr_LU

法語(瑞士)

fr_CH

法語(比利時)

fr_BE

法語(加拿大)

fr_CA

西班牙語(拉丁美洲)

es_LA

西班牙語(西班牙)

es_ES

西班牙語(阿根廷)

es_AR

西班牙語(美國)

es_US

西班牙語(墨西哥)

es_MX

西班牙語(哥倫比亞)

es_CO

西班牙語(波多黎各)

es_PR

德語(德國)

de_DE

德語(奧地利)

de_AT

德語(瑞士)

de_CH

俄語(俄羅斯)

ru_RU

意大利語(意大利)

it_IT

希臘語(希臘)

el_GR

挪威語(挪威)

no_NO

匈牙利語(匈牙利)

hu_HU

土耳其語(土耳其)

tr_TR

捷克語(捷克共和國)

cs_CZ

斯洛文尼亞語

sl_SL

波蘭語(波蘭)

pl_PL

瑞典語(瑞典)

sv_SE

西班牙語(智利)

es_CL

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2024-09-04 10:27:53

2011-08-29 09:48:30

springMVC

2023-01-18 23:20:25

編程開發

2025-06-26 02:22:00

Spring接口國際化

2025-11-04 07:58:20

SpringBoot多語言18n

2024-04-03 13:27:28

Next.js擴展項目

2024-01-04 08:16:34

Spring國際化標準

2011-07-08 11:13:42

Cocoa Touch XCode

2009-06-25 16:04:30

2010-01-04 13:09:51

Silverlight

2011-05-17 09:39:38

JavaSE

2011-08-19 13:13:14

struts2Java

2025-06-09 07:38:23

2009-02-04 15:04:13

2009-12-29 15:05:29

WPF支持國際化

2010-03-02 16:44:59

CentOS Mono

2024-05-17 08:25:06

數據驅動React語言包

2017-01-09 16:24:07

滴滴Android 端 App

2010-07-28 14:52:29

Flex國際化

2024-01-17 10:16:22

前端國際化消息鍵
點贊
收藏

51CTO技術棧公眾號

国产韩日影视精品| 欧美成人福利| 日本视频中文字幕一区二区三区| 精品88久久久久88久久久| 99国产精品白浆在线观看免费| 中文字幕资源网| 亚洲欧美在线专区| 亚洲精品电影网在线观看| 日本www.色| 国产精品一二三区视频| 久久aⅴ国产欧美74aaa| 久久噜噜噜精品国产亚洲综合 | 欧美高清性xxxx| 草莓视频成人appios| 亚洲午夜激情av| 国产精品麻豆免费版| 欧美精品videos极品| 美女精品一区最新中文字幕一区二区三区| 婷婷一区二区三区| 一本一本久久a久久精品综合妖精| 青娱乐在线免费视频| 欧美日韩影院| 精品电影一区二区三区| 日本精品久久久久久久久久| 888av在线| 91亚洲国产成人精品一区二区三| 欧美在线免费看| 男人与禽猛交狂配| 成人h动漫免费观看网站| 亚洲成av人片| 日韩激情视频| 视频在线不卡| 丁香婷婷综合网| 18成人免费观看网站下载| 中文字幕 国产| 亚洲女同在线| 91国产中文字幕| 久久这里只有精品免费| 亚洲国产精品久久久天堂| 国产亚洲精品久久久久久牛牛| 国产三级三级看三级| 中文字幕这里只有精品| 午夜在线成人av| 日本成人在线不卡| 最新黄网在线观看| 91浏览器在线视频| 久久本道综合色狠狠五月| 精品国产av鲁一鲁一区| 亚洲免费综合| 欧美一区二区三区艳史| 国产精品白浆一区二小说| 亚洲激情五月| 超碰91人人草人人干| 日本丰满少妇裸体自慰| 成人福利片在线| 欧美在线不卡视频| 亚洲老女人av| 极品av在线| 精品日韩美女的视频高清| 在线电影看在线一区二区三区| 蜜桃av噜噜一区二区三区麻豆 | 久久频这里精品99香蕉| 麻豆91精品91久久久| 欧美1区免费| 色综合五月天导航| 日韩精品视频免费播放| 久久亚洲精选| 国产精品免费观看在线| 在线观看亚洲国产| 国产一区在线看| 超碰97在线资源| 午夜视频在线免费播放| 久久久久久久久久久久久女国产乱 | 久久99蜜桃综合影院免费观看| 在线播放国产一区| 精品亚洲成a人| 国产精品久久久久9999| 中文字幕在线播出| 国产精品白丝av| 国产综合久久久久久| 国产毛片在线视频| 成人免费黄色在线| 欧美一区少妇| a级在线观看| 激情亚洲一区二区三区四区 | 在线亚洲伦理| 国产精品综合网站| 粉嫩av一区二区夜夜嗨| 国产成人一区在线| 久久久久久久久一区| 99视频在线观看地址| 久久网站热最新地址| 亚洲国产精品一区在线观看不卡| 国产一二在线观看| 成人在线观看免费视频| 久热综合在线亚洲精品| 成人性生交大片免费看小说| 亚洲欧美另类日韩| 国产一区二区三区在线看麻豆| 国产精品日韩精品| 国产成人精品无码高潮| 2020国产精品自拍| www.黄色网址.com| 奇米777日韩| 日韩女优制服丝袜电影| 日本性高潮视频| 欧美女激情福利| 国产日韩精品一区二区| 亚州男人的天堂| 亚洲色图欧美偷拍| 国内自拍中文字幕| 欧洲精品一区二区三区| 精品久久人人做人人爰| 亚洲色图欧美色| 亚洲欧美日韩国产综合精品二区| 青草成人免费视频| 国产福利资源在线| 亚洲国产精品ⅴa在线观看| 日韩精品视频在线观看视频| 国产调教在线| 91麻豆精品国产综合久久久久久| 欧美专区第二页| 国产精品三级| 78m国产成人精品视频| 精品国产av一区二区三区| 中文字幕成人网| 国产亚洲天堂网| 国产厕拍一区| 色综合视频网站| 国产强伦人妻毛片| 国产精品久久久久桃色tv| 天天干天天色天天爽| 1区2区3区在线| 日韩一区二区中文字幕| 欧美a级片免费看| 日韩二区在线观看| 欧美xxxx黑人又粗又长密月 | 手机在线观看av网站| 欧美一区二区三区视频| 99国产精品无码| 免费视频最近日韩| 色姑娘综合网| 男插女视频久久久| 日韩三级视频在线看| 全网免费在线播放视频入口 | 国产91av在线| 午夜精品小视频| 一区二区成人在线| 精品久久久久99| 亚洲色图欧美自拍| 亚洲精品小说| 亚洲xxx自由成熟| 你懂的视频在线播放| 精品高清美女精品国产区| 亚洲男女在线观看| 亚洲欧美日韩综合国产aⅴ| 久精品国产欧美| 亚洲性受xxx喷奶水| 亚洲伦理中文字幕| 波多野结衣在线观看一区| 亚洲国产高清aⅴ视频| 91插插插插插插插插| 欧美影院天天5g天天爽| 欧美有码在线观看| 性欧美8khd高清极品| 亚洲一区二区三区四区在线| 国产女主播在线播放| 91精品国产乱码久久久久久| 91日本在线视频| 黄色羞羞视频在线观看| 亚洲精品动漫久久久久| 中文字幕一区二区人妻电影| 香蕉久久国产| 一区二区三区久久网| 精品一区二区三区亚洲| 97精品视频在线| 亚洲h视频在线观看| 国产精品久久久久久亚洲伦 | 亚洲japanese制服美女| 加勒比一区二区三区在线| 欧美在线免费视屏| 欧美日韩黄色网| av成人免费在线观看| 国产v亚洲v天堂无码久久久| 97精品视频在线看| 国产精品免费区二区三区观看 | 精品中文字幕在线观看| 五月婷婷六月色| 欧美群妇大交群中文字幕| 激情视频在线播放| 久久久精品人体av艺术| 日本三级免费观看| 99久久激情| 国外成人免费视频| 日韩深夜福利网站| 国自产精品手机在线观看视频| 成人午夜免费在线观看| 色偷偷88欧美精品久久久| 日本精品人妻无码77777| 91在线精品一区二区三区| 怡红院亚洲色图| 99综合精品| 亚洲免费视频播放| 国产成人精品免费视| aaa级精品久久久国产片| 伊人色综合一区二区三区影院视频| 日韩精品中文字| 国产视频手机在线| 色婷婷精品大在线视频| 久久久久久久黄色| 中文字幕一区二区5566日韩| 日韩 中文字幕| 国产精品一卡二卡| 亚洲天堂网一区| 亚洲欧美大片| 国产69精品久久久久999小说| 香蕉人人精品| av观看久久| av在线成人| 国产精品视频自在线| 亚洲最大成人| 午夜精品在线观看| 国产无码精品在线观看| 怡红院av在线| 亚洲精品国产精品久久清纯直播 | 在线亚洲一区观看| 久久精品欧美一区二区| 久久蜜桃香蕉精品一区二区三区| 无遮挡又爽又刺激的视频| 日产午夜精品一线二线三线| 九九九九精品九九九九| 99久久婷婷国产综合精品青牛牛| 奇米4444一区二区三区| zzzwww在线看片免费| 久久69精品久久久久久久电影好| 亚洲av成人无码久久精品老人| 在线视频中文字幕一区二区| 国产无人区码熟妇毛片多| 亚洲一区二区成人在线观看| 欧美日韩免费一区二区| 亚洲激情在线播放| 麻豆精品国产免费| 国产精品久久久久久一区二区三区| 日本美女视频网站| 成人午夜av电影| 91精品国产高清91久久久久久 | 亚洲精品国产一区二| 欧美日韩亚洲高清| 午夜影院在线看| 婷婷国产v国产偷v亚洲高清| 91香蕉在线视频| 18成人在线观看| av最新在线观看| 国产黄色免费视频| 欧美经典一区二区| 亚洲精品成人无码毛片| 国产老肥熟一区二区三区| 两性午夜免费视频| 国产在线日韩欧美| 精品人妻无码中文字幕18禁| 国产91精品免费| 91日韩视频在线观看| 蜜臀久久99精品久久久久宅男| 亚洲国产精品成人天堂| 亚洲欧洲一区二区天堂久久| 国产淫片免费看| 玖玖在线精品| www.超碰97.com| 国产一区二区影院| 亚洲一区和二区| 久久久久久久一区| 婷婷综合在线视频| 亚洲精品日韩综合观看成人91| 影音先锋男人在线| 亚洲精品视频自拍| 日韩精品一区二区av| 在线观看91视频| 999免费视频| 亚洲精品国产精品国自产在线| 午夜精品一区二区三| 亚洲激情视频在线播放| 国产精品无码2021在线观看| 美日韩精品免费视频| 免费看美女视频在线网站| 欧美日韩国产999| 亚洲欧洲高清| 91久久久精品| 日韩高清电影免费| 亚洲一区免费看| 在线成人亚洲| 久久久精品麻豆| 日本亚洲免费观看| 亚洲av综合色区无码另类小说| 国产精品白丝jk黑袜喷水| v8888av| 亚洲三级小视频| 亚洲成人av影片| 日韩欧美在线123| 国产免费av高清在线| 色综合老司机第九色激情| 色香欲www7777综合网| 超碰97国产在线| 国产精品天天看天天狠| 亚洲成人午夜在线| 亚洲国产高清视频| 午夜视频在线网站| 国产乱淫av一区二区三区| 日韩网站在线播放| 亚洲激情校园春色| 中文字幕在线观看你懂的| 亚洲成人国产精品| 日本一二三区在线观看| 99精品综合| 日韩在线视频在线观看| 国产乱码精品一品二品| 一级肉体全黄裸片| 欧美日韩亚洲一区二区| 国产一区二区99| 日韩精品中午字幕| 视频二区在线观看| 欧美刺激性大交免费视频| 激情黄产视频在线免费观看| 91久久久久久久久久| 成人av国产| 9色porny| 国产一二三精品| av在线免费播放网址| 在线免费观看一区| jlzzjlzz亚洲女人18| 神马国产精品影院av| 日韩av电影资源网| 欧美一区二区影视| 蘑菇福利视频一区播放| 国产男女猛烈无遮挡a片漫画 | 99久久人妻无码中文字幕系列| 久久精品一二三| 五月天综合激情网| 欧美精品乱码久久久久久按摩| 亚洲欧美激情在线观看| 欧美另类极品videosbestfree| 在线观看涩涩| 九色综合日本| 欧美在线播放| 亚洲五月激情网| 亚洲欧美电影一区二区| 国产毛片久久久久| 久久精品国产亚洲一区二区| 日韩五码电影| 最新精品视频| 国产精品影视网| 久久久久久久久久综合| 亚洲第一福利网| 美女的胸无遮挡在线观看| 国产有码在线一区二区视频| 日韩一区电影| 日本一二三区在线| 国产蜜臀97一区二区三区| 亚洲高清视频免费观看| 中文字幕亚洲一区二区三区| 91吃瓜在线观看| 久久99精品久久久久子伦| 国产欧美综合一区二区三区| 亚欧洲乱码视频| 亚洲成人综合在线| 国产精品国产高清国产| 国产91色在线|| 日本午夜一区| 污视频在线观看免费网站| 亚洲国产中文字幕在线视频综合| 91精品国自产| 久久99精品久久久久久噜噜| 九色丨蝌蚪丨成人| 欧美交换配乱吟粗大25p| 成人av电影在线网| 久久久久久在线观看| 色播久久人人爽人人爽人人片视av| 新版的欧美在线视频| 国产精品久久精品视| 乱人伦精品视频在线观看| 免费观看特级毛片| 精品国产欧美一区二区| 香蕉成人app免费看片| 91精品免费看| 精品96久久久久久中文字幕无| 日本特黄在线观看| 欧美日韩精品在线视频| 成年人在线视频| 国产69精品久久久久9999apgf| 欧美精品日韩| 午夜理伦三级做爰电影| 欧美精品v日韩精品v韩国精品v| 丝袜美腿美女被狂躁在线观看| 国产精品香蕉国产| 国产精品v亚洲精品v日韩精品| 丰满人妻一区二区三区大胸| 亚洲欧美韩国综合色| 免费在线黄色影片| 不卡视频一区| 亚洲毛片在线| 少妇高潮在线观看|