Spring项目国际化

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、都有哪几类信息需要国际化改造

二、示例代码

三、MessageSource工作原理

总结


前言

当国内的业务到达瓶颈的时候,业务就会寻求出海,那么系统就要升级,做国际化改造。

国际化改造,指的是针对地区和语言,对客展示的文案、提示语等要做切换。


提示:以下是本篇文章正文内容,下面案例可供参考

一、都有哪几类信息需要国际化改造

1、可预见性的文案、提示语

例如:登录的时候提示手机号非法、验证码错误等等

这种改造相对简单,因为其可穷举性,逐一人工翻译,然后配置在对应的语言的配置文件中,当需要的时候,根据错误码(配置文件key)+语言+地区,选择对应的value返回

比如登录成功,英文会返回:login success,他加禄语会返回:Matagumpay ang pag-login!

2、业务人员在业务后台配置的一些宣传文案、数据

例如:弹窗文案、首页宣传语

这种需要业务人员针对不同的国家,不同的语言,进行多语种配置并落库存储,需要的时候,通过条件+地区+语言,从数据库中筛选记录。一般不选择用自动翻译API,因为翻译出来的结果不确定性+不准确性太强了。

3、关联系统、交互系统返回的结果

对于单一语种的地区来说,一般用当地的三方服务,都会返回统一的语言。对于多语种的地区,如果三方能根据语种适配,是最好的。如果不能,则需要在调用端,提前根据码值翻译成对应的文案,配到配置文件里。如果有更新,也需要补充兼容。

二、示例代码

messages.properties配置文件

LOGIN_SUCCESS=login success

messages_en_PH.properties配置文件

LOGIN_SUCCESS=Matagumpay ang pag-login!

messages_zh_CN.properties配置文件

LOGIN_SUCCESS=登录成功

测试代码

@Resource private MessageSource messageSource; @Test public void getMessageTest(){ String message = messageSource.getMessage("LOGIN_SUCCESS", null, Locale.CHINA); System.out.println(message); message = messageSource.getMessage("LOGIN_SUCCESS", null, Locale.ROOT); System.out.println(message); Locale locale = new Locale("en", "PH"); message = messageSource.getMessage("LOGIN_SUCCESS", null, locale); System.out.println(message); }

效果展示

三、MessageSource工作原理

使用方法说完之后,我们得说一下配置文件怎么命名,框架查找的原理

MessageSource查找配置文件,是根据以下优先级进行的

优先通过language+region的方式,最精准的方式,示例如图

如果上一步没找到,则通过language进行查找,示例如图

如果上一步也没找到,则找默认的配置文件

说完查找逻辑,接下来要跟App串起来,那么前端得给后端提供language+region信息,可以直接提供Locale,也可以在请求头里添加语种,约定好就行,比如zh_CN,我们可以将其解析为zh+CN的组合,可以根据这两个信息构建Locale对象,然后调用MessageSource 的Api。


总结

国际化,听起来高大上,实际上就是搬运工,把预先准备好的不同语种的文字提取出来,对客展示。

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

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

相关文章

Pandas+大数据:高效完成描述性分析的5个绝招

Pandas大数据:高效完成描述性分析的5个绝招——从慢到飞的实践指南 摘要/引言 作为数据分析师,你是否遇到过这样的困境:用Pandas处理GB级数据时,内存突然爆满,或者循环运算卡到怀疑人生?比如想计算1000万…

学习笔记:卷积神经网络(CNN) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于django的酒店管理系统员工

目录基于Django的酒店管理系统员工摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Django的酒店管理系统员工摘要 Django框架为酒店管理系统的开发提供了高效、安全的解决方…

【图像去噪】均值+中值+高斯低通+多种小波变换图像去噪(含PSNR和MSE)【含GUI Matlab源码 14955期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…

基于Spring Boot的酒店管理系统_36rhk752-java毕业设计

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 本系统基于Spring Boot框架开发,结合现代酒店管理需求,实现了一套高效、稳定、易扩展的酒店管…

知识助手

无代码,纯调试总结。实现知识助手的 app.py 关键信息摘要 本文档总结 app.py 关键信息摘要 本文档总结了 app.py 脚本的核心组件、工作流程和使用的模型。 1. 核心技术栈Web 框架: Streamlit - 用于构建交互式 Web UI…

【图像去噪】均值+中值+高斯低通+硬阈值+软阈值+半软硬硬阈值+广义小波阈值图像去噪(含PSNR和MSE)【含Matlab源码 14956期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…

基于Spring Boot的酒店管理系统_76jha9j3--绿色-java毕业设计

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 本系统基于Spring Boot框架开发,结合MySQL数据库,设计并实现了一套功能完善的酒店管理系统。系…

【图像评价】基于matlab GUI低质图像视觉感知评价系统【含Matlab源码 14954期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…

2026年有实力的图片翻译英文,图片翻译软件,图片在线翻译软件综合实力参考 - 品牌鉴赏师

IntroductionIn 2026, the demand for image translation software has witnessed a significant surge, propelled by the rapid globalization of e - commerce, the flourishing development of cross - border tra…

【图像去噪】均值+中值+软硬阙值小波变换图像去噪【含GUI Matlab源码 14957期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…

Linux chown 命令

使用权限 : root 语法 chown [选项] 所有者[:组] 文件... chown [选项] --reference=参考文件 文件... 选项 :-R, --recursive: 递归更改目录及其子目录中所有文件的所有者 -v, --verbose: 显示详细操作信息 -c, --cha…

2026年有实力的视频翻译字幕软件,视频翻译软件,翻译视频软件软件优质推荐榜 - 品牌鉴赏师

引言在当今全球化的浪潮下,视频翻译软件的需求日益增长,尤其是在跨境电商、短视频出海等领域。为了给广大用户提供一份客观、公正、权威的视频翻译软件推荐榜单,我们参考了国内相关行业协会公开的数据形成的指南以及…

基于Spring Boot的酒店管理系统_n4w99n6v-java毕业设计

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 该系统基于Spring Boot框架开发,旨在为酒店行业提供高效、智能化的管理解决方案。采用B/S架构&#xff0c…

【图像去噪】基于matlab GUI均值+中值+高斯低通+多种小波变换图像去噪(含PSNR和MSE)【含Matlab源码 14955期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…

python基于django+uniapp的商城购物平台电商小程序的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着移动互联网的快速发展,电商平台逐渐成为消费主流方式。基于Django和UniApp的商城购物平台结合了后端高…

PMP知识--十大知识域(下)

六 项目资源管理规划资源管理&估算活动资源规划资源管理估算活动资源获取资源&建设团队获取资源建设团队塔克曼阶梯理论(重点)建设团队的工具与技术管理团队&控制资源管理团队冲突管理情商控制资源七 项目沟通管理概述&规划沟通管理概述…

【剑斩OFFER】算法的暴力美学——力扣 1046 题:最后一块石头的重量

一、题目描述二、算法原理思路:大根堆把所有的数据入堆,然后依次拿取堆顶元素,判断这个两个元素是否相等,不相等,大的值减去小的值入堆;当堆只有一个元素或者没有数据时,就结束循环,…

PMP知识--五大过程组

概述图启动阶段规划阶段执行阶段监控阶段收尾阶段

【图像去噪】基于matlab GUI均值+中值+高斯低通+硬阈值+软阈值+半软硬硬阈值+广义小波阈值图像去噪(含PSNR和MSE)【含Matlab源码 14956期】

💥💥💥💥💥💥💞💞💞💞💞💞💞💞欢迎来到海神之光博客之家💞💞💞&#x1f49…