随笔 - 115  文章 - 481  trackbacks - 0
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(19)

随笔档案(115)

文章档案(4)

新闻档案(1)

成员连接

搜索

  •  

最新评论

阅读排行榜

评论排行榜

一、多国语言资源属性文件
1、定义多国语言资源文件
    为了让系统中支持多国语言,我们需要把各国具体的文字信息存放到资源文件中,EasyJWeb的多国语言资源文件统一存的位置在\WEB-INF\applicationSource目录,文件名为类似下面的内容xxxx_zh.properties,xxxx_en.properties,其中xxx代表资源区域标识、zh及en代表语言。文件中的内容是标准的属性文件,包括一系列成对的名称与值定义的属性。如下面是两个多国语言文件内容:
hello_zh.properties-中文属性信息
#Created by JInto -
#Thu Mar 15 12:43:36 CST 2007
msg=\u5582\uFF0C\u60A8\u597D\uFF0C\u6211\u662FEasyJWeb\uFF0C\u8BF7\u652F\u6301\u56FD\u4EA7\u5F00\u6E90\u9879\u76EE\uFF01
nowtime=\u73B0\u5728\u7684\u65F6\u95F4\u662F
title=\u6211\u7684\u7B2C\u4E00\u4E2AEasyjweb\u5E94\u7528


hello_en.properties-英文属性信息
title=my first EasyJWeb application for US
nowtime=now time is
msg=hello,this is EasyJWeb openSource,Thanks for your support!

2、模板页面中的使用多国语言标签
    有了多国语言资源文件,即可在模板页面中通过多个语言标签来支持多国语言内容,主要有两个步骤;
    (1)、先使用$!i18n.init("hello")来加载资源文件,也可以在easyjweb配置文件中设置自动加载资源文件。
    (2)、然后使用标签$i18n.ml(“name”)来在页面中调用加载多国语言信息。
下面是一个简单的模板示例中的内容:

< html >
< head >
$!i18n.init("hello")
< title > My First EasyJWeb application </ title >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8" >
</ head >

< body >
$!i18n.m("title")
</ body >
</ html >


二、自动多国语言模板支持
      在一些网站应用中,由于各国文化习惯及喜好的不同,各国语言的页面版面及显示内容也要单独设计,此时可以为每一国语言设计一个单独的模板文,并存放在指定的目录下,这样当这个国家的访问这个页面的时候,EasyJWeb会自动使用相应的模板来展现用户内容。
    假如我们用一个名为hello.html的模板文件来显示内容,则EasyJWeb将会自动根据下面的规则选择特定的模板文件来显示具体国的版面。
    默认模板的位置:easyjweb/ hello.html
   中文模板页面:easyjweb/CN/hello.html
  英文模板页面:easyjweb/US/hello.html

三、在Java程序中使用多国语言内容
      EasyJWeb中通过util里面的I18n工具来处理多国语言信息,假如我们要在后台的Action等程序中使用支持多国语言的内容,则需要直接在代码中使用这个工具类,使用的方法如下:
    1、初始化I18n.init(moduleName)-这一操作将在第一次执行的时候把相应moduleName里面的属性信息加载
    2、使用I18n.m(propertyName)-这一操作来得到多国语言信息。
如下面的示例:

public   class  helloAction  implements  IWebAction  {
 
public  Page execute(WebForm form, Module module)  throws  Exception  {
  I18n.init(
" hello " );
  I18n.m(
" msg " );
  String msg
= I18n.getInstance().m( " msg " );
  form.addResult(
" msg " ,msg); //  设置VO对象msg的值为String
  
  form.addResult(
" time " new  Date()); //  设置VO对象time的值为当前时间
   return   new  Page( " hello " , " /hello.html " , " template " ); 
 }

}


四、EasyJWeb中多个语言标签处理类I18n的代码
 

 

package  com.easyjf.util;
import  java.util.Locale;
import  java.util.Properties;
public   class  I18n  {
    
private   static  I18n singleton  =   new  I18n();
    
public   static  I18n getInstance()  {
        
return  singleton;
    }


    
public   static   void  init(String moduleName)  {        
            FrameworkEngine.get(moduleName, 
null );
    }


    
public   static   void  init(String language, String moduleName)  {        
            FrameworkEngine.get(moduleName, language);    
    }


    
public   static  String m(String propertyName)  {    
            Properties rb 
=  FrameworkEngine.get( null null );
            
return  rb.getProperty(propertyName);
    }


    
public   static  String m(String propertyName, String language)  {        
            Properties rb 
=  FrameworkEngine.get( null , language);
            
return  rb.getProperty(propertyName);        
    }

}

 

 小结:

      EasyJWeb中提供了多种方式来满足Web应用中的多国语言支持,可以根据实际应用程序的需求选择使用适合的方式.

posted on 2007-03-16 22:10 简易java框架 阅读(1691) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: