JAVA使用GNU的Gettext后端国际化
Web前端一般使用jquery.i18n.properties.version.js进行国际化,而后端国际化一般采用的是基于resource.i18n.local.properties配置文件的国际化,先因工作需要,使用GNU Gettext进行国际化,该方式使用resource_local.po
- 需要下载的工具:
- gettext-static-0.19.8.1.zip
- 若不使用命令行抽取带翻译内容可下载Poedit.exe
步骤
- 1 下载安装poedit.exe
- 2 下载安装gettext
- 3 创建示例工程
- 4 引入gettext maven依赖
- 5 编写翻译工具类
- 6 编写测试类
- 7 使用命令行或poedit提取待翻译内容创建pot模板文件
- 8 按指定的local将模板文件编译为class文件
- 9 运行测试类
- 10 总结
1 下载安装poedit.exe
下载poedit.exe并安装到本地磁盘
2下载安装gettext
- (1)下载gettext-static.zip(参考前面)
- (2)将下载的zip文件解压,将bin目录添加到path环境变量,便于抽取待翻译内容以及编译class
3 创建示例工程
我使用的是IDEA2016.03旗舰版,创建maven-webapp项目
4 引入gettext maven依赖
为了使用gettext的翻译功能,需要引入gettext的maven依赖:
5 编写翻译工具类
项目中要动态切换系统语言,因此每次创建示例时不使用构造方法,使用init方法初始化传入Locale得到Translation实例,代码如下:
package com.qingsb.gettext;
import gnu.gettext.GettextResource;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* Created by LONG on 2017/3/13.
*/