畅享博客 > 闲庭信步 > i18n international
2007-5-25 23:48:00

i18n international

Here is my some recommendations for java i18n .

1. The correct way to handle text-based resource files for localization

Use java.util.ResourceBoundle to read resource from file.

e.g.
Local local = Local.CHINA;
ResourceBundle rb = ResourceBundle.getBundle("test", local);
String title = rb.getString("helloworld.title");
System.out.println(title);

//The program will read file: test_zh.properties
# This locale is zh_CN
# helloworld.title=中文1234
and the file should use native2ascii program to convert (native2ascii.exe is in JDK)
# This locale is zh_CN
helloworld.title=\u4f60\u597d1234

if you don't use native2ascii to covert,you must covert it in the java program,like this:
ResourceBundle rb = ResourceBundle.getBundle("test", Locale.CHINA);
String title = rb.getString("helloworld.title");
System.out.println(new String(title.getBytes("8859_1"))); //covert to os/jvm default

charset

2. Locale driven date and time display

Use java.text.DateFormat to format date string
e.g.
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL,Locale.CHINA);
String date = df.format(new Date());
System.out.println(date);

DateFormat df2 = DateFormat.getDateTimeInstance

(DateFormat.DEFAULT,DateFormat.DEFAULT,Locale.CHINA);
String datetime = df2.format(new Date());
System.out.println(datetime);

3. JSP localization method.

1) native method:
use "Local local = request.getLocale();" to get the page accessor's local info
then use ResourceBoundle to read local resource
and page should use utf-8 charset

e.g.

notice:put the test_zh.properties into directionary WEB_INF/classes

2)use jsp taglib to simplify the page

the Jakarta i18n taglib is a good choice. http://jakarta.apache.org/taglibs/doc/i18n-

doc/index.html
e.g.

scope="request"
changeResponseLocale="false"/>

3)use j2ee web framework(Struts) to simplify

the Struts web framework supply i18n support
Please refer: http://www.allapplabs.com/struts/struts_internationalization.htm

 


推荐到鲜果:

评论

您正在以 匿名用户 的身份发表评论  快速登录
(不得超过 50 个汉字)
       看不清,换一个
提示消息
(输入完内容可以直接按Ctrl+Enter提交)