作者:@Ryan-Miao
本文为作者原创,转载请注明出处:http://www.cnblogs.com/woshimrf/p/dropwizard-i18n.html
目录
简单使用
#情形一 只有一个Resource Bundle
#情形二 我有多个Resource Bundle
#情形三 我有多个Resource Bundle但读取翻译的时候我想一起
#情形4
引入easy-i18n
添加Resource Bundle
新建MessageService
在IoC中提供ResourceBundleMessageSource
测试
前言
Dropwizard官方文档并没有提供国际化的模块,所以只能自己加。Spring的MessageResource用的很顺手,所以copy过来。
Easy i18n
在整合Dropwizard的时候,多语言貌似只能通过jdk自带的ResourceBundle拿数据。其实也就够了,但在开发过程中发现需要缓存,需要解析占位符等。代码越写越多,显然不是仅仅一个调用就完事的。写的差不多的时候突然觉得和spring context里的message source结构类似。于是,放弃维护已经开始变的复杂的逻辑,直接使用spring。
但选取dropwizard的时候就是摒弃了spring,再拿过来也不好玩了。干脆,抽取Spring context项目的MessageResource相关代码,重写封装了一个library: https://github.com/Ryan-Miao/easy-i18n, 欢迎star。
easy-i18n还是和在Spring项目中相同。
首先,引入依赖,由于github项目的library已经有仓库去维护了,就没费心思放到maven和jcenter了,直接从github上拉取。类库地址为:
<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>
引入
<dependency> <groupId>com.github.Ryan-Miao</groupId> <artifactId>easy-i18n</artifactId> <version>1.0</version> </dependency>