Java中使用native2ascii工具处理.properties文件

  今天在学习访问国际化消息时,需要将提供中文的资源文件转化为国际化资源文件,比如中文资源文件jubu.properties转化为国际化资源文件jubu_zh_CN.properties,书上仅说了一句用,使用native2ascii处理(忍不住吐槽,我压根就不知道这是什么鬼,更别提怎么转换。)而且网上查了一天,很是郁闷,因此。在这里说一下。

一:修改编码方式

  首先,可能有部分人,遇到新建的xxx.properties文件无法写入中文属性:

比如我们在jubu.properties 中写入

loginPage=登录界面   他会显示:loginPage=\u767b\u5f55\u754c\u9762

解决方案:

这是因为eclipse的.properties文件,默认的编码方式是iso-8859-1.所以中文显示有问题。按照下面的方式,把Default Encoding修改成UTF-8就可以了。

Java中使用native2ascii工具处理.properties文件_第1张图片

二:native2ascii工具处理.properties文件

然后我们开始转换.properties文件.

我们的jubu.properties内容如下

loginPage=登录界面
username=用户名

首先我们确定我们的.properties文件所在位置:

F:\JavaEE\workspace\OGNLDemo1\WebContent\WEB-INF\src

然后打开cmd以管理员身份运行,找到相应的src文件夹下:

然后输入

这样就可以将我们提供的中文资源文件转换为国际化资源文件(编码方式为UTF-8)并且命名为jubu_zh_CN.properties.

这里说一下:

native2ascii的命令行的命名格式:
native2ascii -[options] [inputfile [outputfile]]
说明:
-[options]:表示命令开关,有两个选项可供选择
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台。

 

再看我们的src文件夹下,文件已经生成:


三:然后通过struts.xml配置文件加载国际化文件:

	  
value指定国际化文件的baseName。

四:Struts2访问国际化资源文件的三种方式:

表单通过访问全局化文件,name对应文件中的key。

Action中可以通过ActionSupport的getText()方法,方法接受一个name属性,对应国际化文件的key。

Label标签 可以指定key属性 对应文件的key属性。

然后我们通过表单的访问全局化文件:




<s:text name="loginPage"></s:text>


  
  

局部类型转换器

上面标题,输入框提示访问了国际化资源。

五:运行结果:

Java中使用native2ascii工具处理.properties文件_第2张图片

我们可以看出,标题,输入框提醒已经转化为国际化资源的提示信息。


你可能感兴趣的:(Struts2)