struts 2における国際化の問題


国際化
1.グローバル範囲のリソースファイル
srcディレクトリの下で履歴書リソースファイル、名前が付いたらbaseName_laguage_country.properties、例えばwzh_en_US.properties,wzh_zh_CN.properties,
そしてstrutsでxmlでの構成
 <constant name="struts.custom.i18n.resources" value="wzh" />
 

valueリソースファイル名のbaseName
 
2.ページまたはactionでの国際化情報へのアクセス
2.1>jspページでの表示方法
    
  <s:text name="welcome" />

nameはリソースファイルのkey値です
2.2>actionでのアクセス
ActionクラスはActionSupportを継承し、getText()メソッドを使用して国際化情報を取得する必要があります.このメソッドの最初のパラメータは、リソースファイルのkey値を指定するために使用されます.
アクションのように
    
 public String execute(){
		ActionContext.getContext().getSession().put("message", this.getText("welcome")) ;
		return "success";
	  }  
2.3>フォームラベルで、keyプロパティを使用してリソースファイルのkey値を指定します.
例えば:
3.プレースホルダ付き国際情報の出力
3.1>jspページ出力
      
 <s:text name="welcome" >
           <s:param>liming</s:param>
           <s:param>study</s:param>
        </s:text>
3.2>actionでプレースホルダを設定する国際化情報
アクション
      
 public String execute(){
		ActionContext.getContext().put("message", this.getText("welcome",new String[]{"wzh","study"})) ;
		return "success";
	    }
jspに${message}国際化情報を表示
  
4.パッケージ範囲のリソースファイル
Javaのパッケージの下にpackageを配置するlanguage_country.propertiesリソースファイル、packageは固定書き方
例:package_en_US.properties,package_zh_CN.properties .
パケットおよびサブパケットの下にあるactionは、指定したkeyのメッセージを検索するとpackageリソースファイルから検索され、対応するkeyが見つからない場合に指
struts.custom.i18n.resourcesのリソースファイルで検索します.
   
また、actionジャンプを経てのみpackageで検索され、見つからない場合は指定したリソースファイルで検索されます.
アクションがない場合は、指定したリソースファイルの下でのみ検索されます.
 
5.アクション範囲のリソースファイル
Actionクラスが存在するパスの下に配置
ActionClassName_language_country.propertiesリソースファイル、ActionClassNameはactionの単純な名前です.指定したリソースをactionで検索すると、actionパスで検索し、packageで検索します.見つからない場合は、指定したリソースファイルで検索します.
      
6 .jspで指定したリソースファイルに直接アクセスする国際化情報
いわゆるjspダイレクトアクセスはactionジャンプを経ていない
次のようになります.
   
         =
   <s:i18n name="wzh">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>  
              =
   <s:i18n name="cn/itcast/action/package">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>
   
       action       =
   <s:i18n name="cn/itcast/action/HelloWorldAction">
       <s:text name="welcome" >
          <s:param>liming</s:param>
          <s:param>study</s:param>
   </s:text>
   </s:i18n>
   <br/>