当前位置: 首页 > news >正文

9.基于SpringBoot3+I18N实现国际化

1. 新建资源文件

在resources目录下新建目录i18n, 然后
新建messages_en.properties文件

user.login.error=account or password error!

新建messages_zh_CN.properties文件

user.login.error=帐户或密码错误!
2. 新建LocaleConfig.java文件
@Configuration
public class LocaleConfig {@Beanpublic ResourceBundleMessageSource messageSource() {Locale.setDefault(Locale.CHINA);ResourceBundleMessageSource source = new ResourceBundleMessageSource();//设置国际化文件存储路径和名称    i18n目录,messages文件名source.setBasenames("i18n/messages", "i18n/error", "i18n/message-system");//设置根据key如果没有获取到对应的文本信息,则返回key作为信息source.setUseCodeAsDefaultMessage(true);//设置字符编码source.setDefaultEncoding("UTF-8");return source;}}
3. 新建Utils.java文件
@Component
public class Utils implements ApplicationContextAware {private static ApplicationContext applicationContext;/*** 获取国际化信息** @param key*            String :传入的国际化key* @param obj*            Object :传入的国际化参数* @return String 返回国际化信息*/public static String getI18n(String key, Object[] obj) {// 目前我在Utils中写死中文,具体使用时请可配置化Locale locale = Locale.CHINA;String menuName = applicationContext.getMessage(key, obj, "", locale);return menuName;}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (Utils.applicationContext == null) {Utils.applicationContext = applicationContext;}}public static ApplicationContext getApplicationContext() {return applicationContext;}
}
4. 改造登录接口
public ResponseVo login(UserDto userDto) {// 判断是否存在该用户if (user == null) {return ResponseVo.error(Utils.getI18n("user.login.error", null));}
}
5. 启动项目验证

如果出现乱码情况,请将文件设置为UTF-8即可

http://www.lryc.cn/news/254359.html

相关文章:

  • 27. 深度学习进阶 - 为什么RNN
  • 谈一谈柔性数组
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(1)》(25)
  • 算能PCIe开发环境搭建-一些记录
  • 使用C#和HtmlAgilityPack打造强大的Snapchat视频爬虫
  • c/c++的字符和字符串输入输出
  • 学习设计模式的网站
  • Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
  • IDEA加载阿里Java规范插件
  • 【CSP】202305-1_重复局面Python实现
  • html5各行各业官网模板源码下载(1)
  • 6 Redis缓存设计与性能优化
  • SpringCloud常见问题
  • 实战演练 | 在 Navicat 中格式化日期和时间
  • mysql面试题分享带答案
  • 利用 Python进行数据分析实验(一)
  • Jupyter Notebook工具
  • c语言上机小练(有点难)
  • <JavaEE> 什么是线程安全?产生线程不安全的原因和处理方式
  • Kotlin 中的 also 和 run:选择正确的作用域函数
  • ZKP Understanding Nova (1): MinRoot Example
  • 0基础学java-day14
  • 创建conan包-工具链
  • IntelliJ IDE 插件开发 | (二)UI 界面与数据持久化
  • 使用vue UI安装路由插件
  • RPG项目01_脚本代码
  • 目标检测YOLO实战应用案例100讲-交通目标数据集构建及高性能检测算法研究与应用
  • 浅谈Vue.js的计算属性computed
  • Linux常用指令详解
  • Nginx(性能优化)