溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springboot中怎么通過(guò)自定義LocaleResolver實(shí)現(xiàn)切換語(yǔ)言功能

發(fā)布時(shí)間:2021-08-06 17:09:30 來(lái)源:億速云 閱讀:328 作者:Leah 欄目:編程語(yǔ)言

這篇文章將為大家詳細(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ò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI