您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)springboot中怎么通過(guò)自定義LocaleResolver實(shí)現(xiàn)切換語(yǔ)言功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
1、在pom中引入thymeleaf模板引擎
//引入thymeleaf<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
我這里是以登錄界面為例
2、在resources下面創(chuàng)建一個(gè)i18n的文件夾,然后創(chuàng)建一個(gè)login.properties
login.propertie:默認(rèn)顯示的語(yǔ)言login.button=登陸login.password=密碼login.remember=記住我login.tip=請(qǐng)登陸login.username=用戶名login_en_US.properties:美國(guó)(英語(yǔ))login.button=Sign Inlogin.password=PassWordlogin.remember=Remember Melogin.tip=Please sign inlogin.username=UserNamelogin_zh_CN.properties:中文login.button=登陸login.password=密碼login.remember=記住我login.tip=請(qǐng)登陸login.username=用戶名
3、在登錄頁(yè)面通過(guò)thymeleaf標(biāo)簽引入國(guó)際化
注意:input標(biāo)簽需要用[[]]來(lái)進(jìn)行取值
4、運(yùn)行項(xiàng)目,將瀏覽器語(yǔ)言設(shè)置為英語(yǔ)(美國(guó))或者中文,我們的頁(yè)面就會(huì)切換語(yǔ)言。
但是這里必須要手動(dòng)設(shè)置瀏覽器語(yǔ)言才可以實(shí)現(xiàn)中英文切換,最終的效果是點(diǎn)擊頁(yè)面上中文和English來(lái)進(jìn)行切換語(yǔ)言,下面來(lái)實(shí)現(xiàn)這個(gè)功能:
1、SpringBoot為我們自動(dòng)配置了LocaleResolver
組件,實(shí)現(xiàn)國(guó)際化我們需要自定義LocaleResolver
才能起作用,代碼如下:
** * Describe: 國(guó)際化 * Copyright: ITfxsen * Date: 2019/10/17 * Time: 16:18 * @author fu.qiang * @version 1.0 */@Configurationpublic class MyLocaleResolver implements LocaleResolver { @Override public Locale resolveLocale(HttpServletRequest httpServletRequest) { String l = httpServletRequest.getParameter("l"); if (StringUtils.isEmpty(l)){ Locale locale = Locale.getDefault(); return locale; }else { String[] split = l.split("_"); return new Locale(split[0],split[1]); } }
2、再將自定義LocaleResolver注入到spring容器中:
/** * Describe: 注入自定義的LocaleResolver * @param * @return * @Time: 2019/10/18 9:38 * @autho: fu.qiang * @version 1.0 */ @Bean public LocaleResolver localeResolver(){ return new MyLocaleResolver(); }
3、在頁(yè)面上使用Thymeleaf模板引擎,對(duì)中英文切換的a標(biāo)簽的href屬性覆蓋:
<a class="btn btn-sm" th:href="@{/login(l='zh_CN')}" rel="external nofollow" >中文</a><a class="btn btn-sm"th:href="@{/login(l='en_US')}" rel="external nofollow" > English</a>
關(guān)于springboot中怎么通過(guò)自定義LocaleResolver實(shí)現(xiàn)切換語(yǔ)言功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。