崇左市网站建设_网站建设公司_小程序网站_seo优化
2026/1/16 20:51:40 网站建设 项目流程

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

目录

前言

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

二、示例代码

三、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。


总结

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询