當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot中英文切换/国际化——java后端怎么用预置文本的内容替换web网页内容(Resource Bundle)
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot中英文切换/国际化——java后端怎么用预置文本的内容替换web网页内容(Resource Bundle)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 創建預置文件文本內容
- Thymeleaf修改前端使其獲得預置文本內容
- html頁面設置跳轉標簽和傳值
- 創建一個MyLocaleResolver配置文件
- 在MvcConfiguration中注冊bean
創建預置文件文本內容
1.resources下創建目錄internationalization即國際化目錄
2.在internationalization目錄下創建properties文件,我這邊是signUp.properties、signUp_zh_CN.properties、signUp_en_US.properties。
3.在Resource Bundle(注意下圖左下角圈起來的Resource Bundle,如果沒有點開File->settings,去Marketplace中下載Resource Bundle Editor)中添加相應html頁面的各個值。
4.如下圖所示共有7處,所以上圖我添加了7個signUp開頭的變量,這代表7處地方可以實現中英文切換
Thymeleaf修改前端使其獲得預置文本內容
1.application.properties中設置預置文本來源
2.找到前端的第一個內容塊,通過Thymeleaf設置
發現刷新后改變了,第一塊內容變成了我預置的中文。
一些html的標簽怎么用thymeleaf傳文字
html頁面設置跳轉標簽和傳值
<a th:href="@{/signup.html(lang='zh_CN')}">中文 </a> <a th:href="@{/signup.html(lang='en_US')}"> English</a>創建一個MyLocaleResolver配置文件
利用Locale的一系列方法,大致過程為:解析請求,獲取語言和地區,拆分并創建Locale對象,范圍新對象。```java package com.example.project.config;import org.springframework.web.servlet.LocaleResolver; import org.thymeleaf.util.StringUtils;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Locale;public class MyLocaleResolver implements LocaleResolver {@Override//解析request請求public Locale resolveLocale(HttpServletRequest request) {//獲取請求中的參數鏈接String language = request.getParameter("lang");//如果沒有使用默認Locale locale = Locale.getDefault();//如果請求鏈接攜帶國際化參數if(!StringUtils.isEmpty(language)){//zh_CN en_USString[] split = language.split("_");//把拆開的分別存入數組中//根據split數組獲取語言和國家locale = new Locale(split[0],split[1]);}return locale;}@Overridepublic void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {} }在MvcConfiguration中注冊bean
//自定義國際化組件@Beanpublic LocaleResolver localeResolver(){return new MyLocaleResolver();}總結
以上是生活随笔為你收集整理的SpringBoot中英文切换/国际化——java后端怎么用预置文本的内容替换web网页内容(Resource Bundle)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linq结果转换object_【Java
- 下一篇: android intent-filte