SpringBoot中处理处理国际化

news2024/11/24 9:06:21

SpringBoot中处理处理国际化

    • 1. 创建SpringBoot项目
    • 2. resource下创建i18n目录
    • 3. 右键i18n新建资源包
    • 4. 弹框中添加需要支持的国际化语言
    • 5. messages.properties中添加需要国际化的键
    • 6. application.yaml添加配置
    • 7. 国际化工具
    • 8. 使用功能
    • 9 场景问题

1. 创建SpringBoot项目

2. resource下创建i18n目录

3. 右键i18n新建资源包

在这里插入图片描述

4. 弹框中添加需要支持的国际化语言

在这里插入图片描述

5. messages.properties中添加需要国际化的键

在这里插入图片描述
在这里插入图片描述

6. application.yaml添加配置

spring:
  messages:
    basename: i18n/messages

7. 国际化工具

/**
 * 国际化工具类
 **/
@Component
public class MessageUtils {

	private static MessageSource messageSource;

	public MessageUtils(MessageSource messageSource) {
		MessageUtils.messageSource = messageSource;
	}

	/**
	 * 获取单个国际化翻译值
	 */
	public static String get(String msgKey) {
		try {
			return messageSource.getMessage(msgKey, null, LocaleContextHolder.getLocale());
		} catch (Exception e) {
			return msgKey;
		}
	}

}

8. 使用功能

@RestController
@RequestMapping("/i18n")
public class I18nController {

	@RequestMapping("/user")
	public String getUserName() {
		return MessageUtils.get("validator.error_message.not_null");
	}
}

9 场景问题

  1. 国际化报错 No message found under code ‘xxx.xxxx‘ for locale ‘zh_CN‘
org.springframework.context.NoSuchMessageException: No message found under code 'user.name' for locale 'zh_CN'.
	at org.springframework.context.support.DelegatingMessageSource.getMessage(DelegatingMessageSource.java:76) ~[spring-context-5.3.23.jar:5.3.23]

错误原因:

  1. 没有创建messages.properties文件。
    只创建了messages_en_US.properties和messages_zh_CN.properties两个文件。
    messages.properties 这个是默认的配置,其他的则是不同语言环境下的配置。这个文件一定不能少。
  2. 自定义文件目录配置错误,配置中没有写文件名前缀messages

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1316856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能配电房在线监测系统

智能配电房在线监测系统是一个综合性的系统,依托电力智慧运维工具-电易云,主要用于监控和调整配电房的环境、安防和电气设备状态。以下是该系统的一些主要功能和特点: 环境监控:实时监测配电房内的温度、湿度、SF6气体浓度、臭氧浓…

论文阅读笔记(12月15)--DialogXL

论文阅读笔记(12月15)–DialogXL 基本情况介绍: 作者:Weizhou Shen等 单位:中山大学 时间&期刊:AAAI 2021 主题:对话情绪识别(ERC)–文本模态 论文链接:https://ojs.aaai.org/index.php/AAAI/article…

如何在Go中并发运行多个函数

引言 Go语言的一个流行特性是它对并发的一流支持,即一个程序可以同时做多件事。随着计算机从更快地运行单个代码流转向同时运行更多代码流,能够并发地运行代码正在成为编程的重要组成部分。为了让程序运行得更快,程序员需要把程序设计成并发运行,这样程序中并发的每一部分…

HQL优化之数据倾斜

group by导致倾斜 前文提到过,Hive中未经优化的分组聚合,是通过一个MapReduce Job实现的。Map端负责读取数据,并按照分组字段分区,通过Shuffle,将数据发往Reduce端,各组数据在Reduce端完成最终的聚合运算。…

SpringCloud-高级篇(八)

(1)TCC模式 前面学了XA和AT模式,这两种模式最终都能实现一致性,和隔离性,XA是强一致,AT是最终一致,隔离性呢XA是在第一阶段不提交,基于事务本身的特性来完成隔离,AT则是…

MongoDB表的主键可以重复?!MongoDB的坑

MongoDB表的主键可以重复?! 眼见为实? 碰到一个奇怪的现象, MongoDB的一个表居然有两个一样的_id值! 再次提交时,是会报主键冲突的。那上图,为什么会有两个一样的_id呢? 将它们的…

【halcon深度学习】目标检测的数据准备过程中的一个库函数determine_dl_model_detection_param

determine_dl_model_detection_param “determine_dl_model_detection_param” 直译为 “确定深度学习模型检测参数”。 这个过程会自动针对给定数据集估算模型的某些高级参数,强烈建议使用这一过程来优化训练和推断性能。 过程签名 determine_dl_model_detection…

10 新字符设备驱动文件

一、新字符设备驱动原理 因为 register_chrdev 和 unregister_chrdev 两个函数是老版本驱动文件,现在可以用新字符设备驱动 API 函数。 1. 分配和和释放设备号 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会带来两…

【面试】广告优化

a1:点击率公式是什么?点击率低的原因是什么? 点击率点击/曝光,点击率低的原因主要有两点:一是创意不吸引人;二是目标受众不准确/定向过宽不精确,广告曝光给了对产品不感兴趣用户 a2:…

数据库——关系数据的规范化:范式判断【知识点罗列+例题讲解】

知识点罗列: 各种范式之间的关系 1.第一范式1NF: 如果关系模式R中所有的属性都具有原子性,均是不可再分的(一个属性不能再被分解成更小的数据单元),则称R属于第一范式,简称1NF,记作R…

linux常见错误

1.E45: ‘readonly‘ option is set (add ! to override) 首先使用以下命令从Vim编辑器中出来::qa!(强制退出) 接下来,使用sudo vim filename和更高版本::wq 2.Bash script – "/bin/bash^M: bad interpreter: No such file or direc…

yolov5单目测距+速度测量+目标跟踪

要在YOLOv5中添加测距和测速功能,您需要了解以下两个部分的原理: 单目测距算法 单目测距是使用单个摄像头来估计场景中物体的距离。常见的单目测距算法包括基于视差的方法(如立体匹配)和基于深度学习的方法(如神经网…

安捷伦N9020A 是德keysight/N9020A

N9020A信号分析仪自动化和通讯接口: 符合 LXI、SCPI 和 IVI-COM USB 3.0、1000Base-T LAN、GPIB 编程与 PSA、8566/68 和 856x 的远程语言兼容性 通用 X 系列用户界面 / 开放式 Windows 7 操作系统(标准) 将现有的 MXA 从 Windows XP 迁移到…

CAN 五: CAN编程实践

1、CAN基本驱动步骤 (1)CAN参数初始化 工作模式、波特率等函数:HAL_CAN_Init (2)使能CAN时钟和初始化相关引脚 GPIO模式设为复用功能模式函数:HAL_CAN_MspInit(CAN的初始化回调函数) (3)设置过滤器 过滤器的配置函数:HAL_CAN_ConfigFil…

【linux】(ubuntu)下 QT 出现的问题

错误一:Make 运行QT程序以后出现这样的错误。 【解决方法】 我的ubuntu版本是18.04.4, 原因1:没有更换软件源 原因2:没安装相关 软件包 注意:这一步很有可能卡死这一步,所以如果一直卡在这并且进度…

黑马点评01

基础篇-07.Redis命令-数据结构介绍_哔哩哔哩_bilibili 1.NoSQL 非结构化数据库,和sql的区别在于没有数据库表之间的关系(主键外键),一般的存储形式是JSON。每个json里面都存储了该记录的所有数据,所以有一定重复性。 …

总结一些vue3小知识2

1.el-tree-select和el-tree组件报错(有的下拉选项选择不了,一点击就报错,但是有的却能选择,不会报错) 原因:就如同v-for一样,需要添加key才不会出现渲染错误,而el-tree-select和el-tree组件需要…

MySQL数据库 DCL

目录 DCL概述 管理用户 权限控制 DCL概述 DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访 问权限。 管理用户 (1) 查询用户 select * from mysql.user; 查询的结果如下: 其中 Host代表当前用户访问的主机, 如果为localh…

计算机组成原理-指令系统CISC和RISC

文章目录 总览CISC和RISC 总览 CISC和RISC 存储程序就是用一个电路再加上存储部件构成 可访存指令不同 RISC更自由,因为很多函数没有固定,是自己写的 由于CISC各个指令执行时间不一样,要实现指令流水线比较困难 由于CISC可访存指令没有限制…

LVS负载均衡群集,熟悉LVS的工作模式,了解LVS的调度策略以及ipvsadm工具的命令格式

目录 一、什么是群集 群集的作用: 群集的目的是什么 根据群集所针对的目标差异,可分为三种类型 负载均衡群集(LBC)load balance cluster 高可用群集(HAC)high availability cluster 高性能运算群集&a…