国际化工具(适用于一切项目)
利用配置文件进行项目国际化多语言的工具包
资源文件为典型的java properties文件,通过key=value形式定义国际化需要的消息,其中key为各语言消息统一使用的消息编码,用户通过language和key可以获得唯一对应的消息value。
(1)java8
(2)maven
(1)clone工程源码,在源码目录下控制台运行mvn install -Dmaven.test.skip=true进行jar包的构建。
(2)构建完成后在 /target 目录下可以找到 i18n.jar, i18n-sources.jar, 分别为工程打包之后的可执行文件及源码文件。
(3)将jar文件导入到需要添加的项目工程路径中,修改类路径即可。
(1)将jar文件导入到需要添加的项目工程路径中。
(2)构建配置文件pom依赖中引入以下代码:
<dependencies>
<dependency>
<groupId>com.github.johnsonmoon</groupId>
<artifactId>i18n</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/lib/i18n-1.0.jar</systemPath>
</dependency>
</dependencies>
(3)工程目录控制台运行 mvn compile。
public static void main(String[] args) throws I18nException {
//默认语言
String defaultLanguage = "zh_CN";
//多语言消息配置文件存放路径
String languageResourceFilePath = System.getProperty("user.dir") + File.separator
+ "src/test/resources/conf/i18n";
//初始化多语言工具
I18nInit.getInstance(defaultLanguage, languageResourceFilePath).init();
}
app-context.xml:
<bean id="i18nInit" class="I18nInit" init-method="init">
<constructor-arg name="defaultLanguage" type="java.lang.String"
value="${i18n.default.language}" />
<constructor-arg name="languageResourceFilePath" type="java.lang.String"
value="${i18n.file.path}" />
</bean>
(1)在项目中添加多语言消息配置文件,命名格式为 *-en_US.properties,其中en_US代表配置文件消息的国家语言。
(2)配置文件中添加key=value形式的语言编码=值 键值对,例如如下
test.hello=hello!
test.hello.people=hello, %s!
通过I18nUtils类的静态方法getMessage即可获取配置的消息,如下:
System.out.println(I18nUtils.getMessage("en_US", "test.hello"));
System.out.println(I18nUtils.getMessage("en_US", "test.hello.people", "Johnson"));
执行结果如下:
hello!
hello, Johnson!