SpringBoot實(shí)現(xiàn)前后端分離國(guó)際化的示例詳解
前言
Springboot國(guó)際化可以幫助使用者在不同語(yǔ)言環(huán)境中構(gòu)建應(yīng)用程序,這樣應(yīng)用程序可以有效地適應(yīng)不同語(yǔ)言文化背景下的用戶需求。
此外,Springboot國(guó)際化也可以方便多語(yǔ)言應(yīng)用程序重用和維護(hù),從而減少了系統(tǒng)部署的時(shí)間成本和維護(hù)的費(fèi)用。
要實(shí)現(xiàn)Springboot國(guó)際化應(yīng)用,主要有三個(gè)步驟。
1、設(shè)置國(guó)際化屬性文件
定義國(guó)際化資源文件,使用properties格式的文件,將不同的多國(guó)語(yǔ)言文本資源放在不同的文件中,每個(gè)文件的命名采用【locale】+【messages】的方式,如zh_CN.properties、en_US.properties等。
message.properties文件內(nèi)容可為空。
message.en_US.properties內(nèi)容示例:
40001=Hello
message.zh_CN.properties內(nèi)容示例:
40001=你好
2、創(chuàng)建解析器和攔截器
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.SessionLocaleResolver; import java.util.Locale; @Configuration public class LocaleConfig { @Bean public SessionLocaleResolver localeResolver() { SessionLocaleResolver localeResolver = new SessionLocaleResolver(); localeResolver.setDefaultLocale(Locale.CHINA); return localeResolver; } @Bean public WebMvcConfigurer localeInterceptor() { return new WebMvcConfigurer() { @Override public void addInterceptors(InterceptorRegistry registry) { LocaleChangeInterceptor localeInterceptor = new LocaleChangeInterceptor(); localeInterceptor.setParamName("lang"); registry.addInterceptor(localeInterceptor); } }; } }
3、啟動(dòng)配置文件設(shè)置
application.properties中添加如下內(nèi)容
#i18n spring.messages.basename=i18n.messages spring.messages.cache-duration=3600 spring.messages.encoding=UTF-8
application.yml中添加如下內(nèi)容
spring: messages: basename: i18n/messages
4、控制器示例
Springboot的國(guó)際化是通過(guò)一個(gè)稱為“messageSource”的bean實(shí)現(xiàn)的。
import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/test") public class TestControler { @Autowired private MessageSource messageSource; @GetMapping("/hello") public Map<Object, Object> test() { Map<Object, Object> result = new HashMap<Object, Object>(); result.put("code", 40001); result.put("msg", messageSource.getMessage("40001", null, LocaleContextHolder.getLocale())); return result; } }
5、小結(jié)
Springboot國(guó)際化可以幫助使用者在不同語(yǔ)言環(huán)境中構(gòu)建應(yīng)用程序,這樣應(yīng)用程序可以有效地適應(yīng)不同語(yǔ)言文化背景下的用戶需求。
此外,Springboot國(guó)際化也可以方便多語(yǔ)言應(yīng)用程序重用和維護(hù),從而減少了系統(tǒng)部署的時(shí)間成本和維護(hù)的費(fèi)用。要實(shí)現(xiàn)Springboot國(guó)際化應(yīng)用,主要有三個(gè)步驟。
1.設(shè)置國(guó)際化屬性文件:要實(shí)現(xiàn)Springboot國(guó)際化,首先要準(zhǔn)備一系列國(guó)際化屬性文件,包括語(yǔ)言和地區(qū)信息。
2.注冊(cè)國(guó)際化消息資源:將屬性文件中的語(yǔ)言和地區(qū)信息注冊(cè)到Springboot應(yīng)用程序中,并指定默認(rèn)值,以便在擴(kuò)展多語(yǔ)言時(shí)可以快速、高效地訪問(wèn)相關(guān)屬性資源。
3.定義多語(yǔ)言捆綁文件:將已定義的國(guó)際化屬性文件與應(yīng)用程序結(jié)合起來(lái),形成多語(yǔ)言捆綁文件,以便在用戶選擇不同語(yǔ)言時(shí)可以及時(shí)調(diào)整應(yīng)用程序語(yǔ)言版本。
到此這篇關(guān)于SpringBoot實(shí)現(xiàn)前后端分離國(guó)際化的示例詳解的文章就介紹到這了,更多相關(guān)SpringBoot國(guó)際化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot集成I18n國(guó)際化文件在jar包外生效問(wèn)題
- SpringBoot的@GetMapping路徑匹配規(guī)則、國(guó)際化詳細(xì)教程
- 史上最佳springboot Locale 國(guó)際化方案
- Springboot+AOP實(shí)現(xiàn)返回?cái)?shù)據(jù)提示語(yǔ)國(guó)際化的示例代碼
- 基于springboot i18n國(guó)際化后臺(tái)多種語(yǔ)言設(shè)置的方式
- 如何在springboot中實(shí)現(xiàn)頁(yè)面的國(guó)際化
- SpringBoot參數(shù)校驗(yàn)與國(guó)際化使用教程
- SpringBoot實(shí)現(xiàn)國(guó)際化過(guò)程詳解
- SpringBoot 國(guó)際化適配方案使用解決方案
相關(guān)文章
Java利用Poi讀取excel并對(duì)所有類型進(jìn)行處理
這篇文章主要為大家詳細(xì)介紹了Java利用Poi讀取excel并對(duì)所有類型進(jìn)行處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2024-01-01Java獲取支付寶OpenID的實(shí)現(xiàn)方法
在Java中,通過(guò)支付寶開(kāi)放平臺(tái)API可以獲取用戶的OpenID,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-09-09Spring中的注解之@Override和@Autowired
看別人寫的代碼,經(jīng)常會(huì)用到 @Override 和 @Autowired 這兩個(gè)注解.這邊總結(jié)一下這兩個(gè)注解的作用,對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05Java實(shí)現(xiàn)數(shù)組轉(zhuǎn)字符串及字符串轉(zhuǎn)數(shù)組的方法分析
這篇文章主要介紹了Java實(shí)現(xiàn)數(shù)組轉(zhuǎn)字符串及字符串轉(zhuǎn)數(shù)組的方法,結(jié)合實(shí)例形式分析了Java字符串及數(shù)組相關(guān)的分割、遍歷、追加等操作技巧,需要的朋友可以參考下2018-06-06Java實(shí)現(xiàn)游戲抽獎(jiǎng)算法
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)游戲抽獎(jiǎng)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Spring @Async 的使用與實(shí)現(xiàn)的示例代碼
本篇文章主要介紹了Spring @Async 的使用與實(shí)現(xiàn)的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn)代碼
這篇文章主要介紹了Springboot實(shí)現(xiàn)人臉識(shí)別與WebSocket長(zhǎng)連接的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11