native2ascii messages_zh_TW.txt application_zh_TW.properties |
welcome.helloWord=哈啰! welcome.message=这是您的神秘礼物!则经过native2ascii编码过后的messages_zh_TW.properties,内容会如下:
welcome.helloWord=\u54c8\u56c9\uff01 welcome.message=\u9019\u662f\u60a8\u7684\u795e\u79d8\u79ae\u7269\uff01Struts预设以服务器上的Locale设定来决定要传回哪一个讯息资源文件的内容给客户端,在文件名称命名上您可以用语言与区域讯息来表明国际化时要使 用的档案,例如application_zh_TW.properties、 application_zh_CN.properties、application_zh_HK.properties,如果Struts找不到对应 Locale的讯息档案,则会使用预设的messages.properties。
.... public ActionForward execute(....) throws Exception { .... MessageResources messageResources = getResources(request); Locale locale = new Locale("zh", "CN"); String helloWord = messageResources.getMessage(locale, "welcome.helloWord"); String message = messageResources.getMessage(locale, "welcome.message"); .... } ....这可以指定取得messages_zh_CN.properties中的讯息,在实际的应用中,您可以在窗体中放一个隐藏参数,表示使用者所选择的语系,然后在Action中取得这个参数,以决定该显示什么语系给使用者。
Sting helloWord = messageResources.getMessage( new Locale("zh", "CN"), "welcome.helloWord"); String message = messageResources.getMessage( new Locale("zh", "TW"), "welcome.message");
配合UTF-8编码,这将可以在同一个页面显示简体中文与繁体中文,当然,别忘了准备messages_zh_CN.properties与 messages_zh_TW.properties两个不同语言的讯息档案。