武汉课工场Java培训:SpringBoot实现国际化开发
不知道大家在平常访问一些网站的时候有没有注意到 , 很多网站都是有中英两个版面的 , 比如京东 , 我们就可以选择很多不同国家的语言 , 这其实都是为了满足不同国家和语言的人使用的需求 。
通常情况下 , 一些比较复杂而且内容个性化的网站都会针对不同的国家 , 在内容上做一些调整 , 甚至是在不同的国家有独立站点;淘宝、京东、亚马逊都是这样在不同的国家有不同的站点 。 而一些内容比较标准化(网站内容一般不变化)的公司 , 如果切换成英语 , 也只是网站的语言从中文变成英文而已(下面Bing网页可以看到)
这样我们就可以根据我们自己的情况 , 来访问不同语言的网站 , 这个其实应用程序国际化的体现 。
而那些没有国际化的网站 , 就不能提供这么友好的体验 。
国际化 , 英文叫internationalization由于单词太长 , 而程序猿又是一个比较讲究效率的群体(比较懒)有给他起了个简称叫i18n(在i和n之间有18个字母)这样一张嘴就能说完!类似的还有Kubernetes(k8s);可见程序猿的创造力还是很丰富的 , 了解的什么是国际化了 , 接下来就要开始干了 。
SpringBoot之国际化篇
在SpringBoot中要实现国际化是比较简单的 , 但如果要是在整个项目中实现国际化 , 还需要看前端使用的什么技术 , 比如是JSP、还是Vue等;但是作为优秀的后端工程师 , 当然要先搞定后端为主 , 所以咱么今儿个就先把SpringBoot后端这部分搞定~
创建国际化文件由于SpringBoot默认就支持国际化的 , 所以我们只需要在resources文件夹下创建国际化配置文件即可 , 这里为了方便演示效果 , 咱么需要创建3个配置文件:
messages.properties默认处理国际化的配置文件 , 要注意文件名是messages是固定的messages_zh_CN.propertieszh_CN是中文简体messages_en_US.propertiesen_US是美国英语Tips:
文件名也要以messages开头,如:messages_xxx.properties,如果不指定国际化语言则使用默认配置文件 。
然后 , 在三个配置文件中分别添加配置属性 。
在messages.properties添加中文配置信息 , 表示默认是使用的使用中文 。
#默认使用中文i18n配置username=课工场
在messages_zh_CN.properties添加中文配置信息 , 表示默认是使用的使用中文 。
#使用中文i18n配置username=课工场
在messages_en_US.properties添加中文配置信息 , 表示默认是使用的使用中文 。
#使用美国英语i18n配置username=kegongchang
只需要以上这么简单的配置就可以了 。
创建Controller加下来就可以写一个controller类来处理国际化了
/***国际化测试*/@RestControllerpublicclassI18nController{@AutowiredprivateMessageSourcemessageSource;@GetMapping("i18n")publicStringi18n(){//获取当前请求的区域LocaleLocalelocale=LocaleContextHolder.getLocale();returnmessageSource.getMessage("language",null,locale);}}
接下来就是见证奇迹的时刻...
见证奇迹的时刻这里为了方便测试 , 我们使用IDEA的自定的HTTPClient工具 , 在请求头中 , 添加请求参数 , 注意参数的使用的-,而不是_下划线:
Accept-Language语言设置成英文(en-US) , 效果如下 , 这个是在模拟用户使用的浏览器是语言 , 也就是用户是使用英语的Accept-Language语言设置成中文(注意参数是zh-CN) , 同上 , 这里模拟用户是使用中文作为浏览器的语言这里咱么测试的使用的英语 , 中文同理只需要把Accept-Language的设置成zh_CN就可以了!
我们将请求头里面的Accept-Language设置成英文 , 就说明用户使用的浏览器语言英文 , 那用户就应该是欧美国家 , 所以对应服务器返回的内容就会是英文的内容 。
推荐阅读
- 武汉|《柳叶刀》:武汉人群新冠抗体阳性者占6.9%,其中82%系无症状感染
- 中和抗体|王辰团队《柳叶刀》发文,武汉人群研究显示新冠中和抗体至少可以维持9个月
- 武汉协和医院|武汉协和医院完成第100例儿童心脏移植,例数持续居全国首位
- 用剩米饭做早餐,快手简易版武汉豆皮
- 武汉70后老两口午餐走红朋友圈,网友:吃饱吃好不浪费拒绝精致穷
- 石油|石油课堂|采油工程名词解释
- 武汉大学人民医院|抗疫医护重回战地,79岁患者第一次看清救命恩人的样子
- 纵瑞文|武汉一块古化石被命名为“江夏鱼”,模样萌态可掬!并非武昌鱼祖先
- 武汉一家三口晚餐,朋友圈火了,网友:吃好吃饱不浪费拒绝精致穷
- 新冠病毒|武汉病毒所研究员石正丽:新冠病毒的祖先在哪?
