第5章 Struts 2の国際化への対応
Struts 2の国際化への対応
homepage
# **Struts 2の国際化への対応** *** **本章の目標**は 下記の画面ような国際化機能を追加します。 <!--graph5-1.png--> <a href="https://i.loli.net/2019/07/03/5d1c52262f5ab53886.jpg" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c52262f5ab53886.jpg" width=40%></a> <br> <!--graph5-2.png--> <a href="https://i.loli.net/2019/07/03/5d1c54018c43649786.jpg" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c54018c43649786.jpg" width=40%></a> <br> ## **1.プロパティファイルをつくる** ### **・命名規則** プロパティファイル参照方法は国際化(i18n)にも対応しています。JSPと同様に、接続ユーザーのロケール情報を利用して自動的にロケールに対応したプロパティファイルを読み込むことができます。 Struts 2でも、プロパティファイルの命名規則は、「プロパティファイルのベース名_言語コード_国コード_地域コード.properties」となります。 <br> ### **・優先度** 優先度を高い順に並べると次のようになります。 **(1)** Actionクラス名.properties そのActionクラス限定のメッセージを定義することになります。 **(2)** Actionクラスの基底クラス名.properties 継承したActionクラスに共通のメッセージを定義することができます。 **(3)** パッケージ内のpackage.properties 同一のパッケージにあるActionクラスで共通にできます。 **(4)** グローバル(struts.xmlで指定) アプリケーション全体で共通して1つのプロパティファイルを使用することになります。 <br> ### **・srcに三つのファイルを追加** <!--graph5-3.png--> <img src="https://i.loli.net/2019/06/27/5d1474a98e02a23771.png" width=40%> ### **・struts.xmlにコードを追加** ``` <constant name="struts.ui.theme" value="simple" /> <constant name="struts.custom.i18n.resources" value="MessageData" /> <constant name="struts.i18n.encoding" value="UTF-8" /> ``` <!--graph5-4.png--> <a href="https://i.loli.net/2019/06/27/5d147599b81e457939.png" target="_blank"> <img src="https://i.loli.net/2019/06/27/5d147599b81e457939.png" width=40%></a> <br> ### **・MessageData\_en\_US.propertiesを作る** ``` title=Employee Management System userid=UserID password=Password login=ENTER minlen=6 msg_company_001=Please enter {0} ! msg_company_002=Password must include {0} characters! msg_company_006=Please enter a valid email! msg_company_003=Not existed UserID, please contact with system administrator! msg_company_004=Incorrect Password! msg_company_005=You do not have the authority to access, please contact with system administrator! ``` ### **・MessageData\_ja\_JP.propertiesを作る** ``` title=社員管理システム userid=ユーザID password=パスワード login=ログイン minlen=6 msg_company_001={0}を入力してください! msg_company_002=パスワード欄に{0}桁半角英数字を入力してください! msg_company_003=ユーザIDは存在しないので、管理者へ連絡して下さい! msg_company_004=パスワードは不正です! msg_company_005=権限不足の為、管理者へ連絡して下さい! msg_company_006=有効なメールアドレスを入力してください! ``` <br> ### **・MessageData\_zh\_CN.propertiesを作る** ``` title=社员管理系统 userid=用户名 password=密码 login=进入 minlen=6 msg_company_001=请输入{0}! msg_company_002=密码应为{0}位半角英数字! msg_company_006=请输入一个有效的电子邮件! msg_company_003=用户名不存在,请与管理员联系! msg_company_004=密码错误! msg_company_005=权限不足,请与管理员联系! ``` <br><br> ## **2.国際化(i18n) LoginAction-validation.xmlの対応** 「LoginAction-validation.xml」は下の赤枠表示の内容を書き直します。 <!--graph5-5.png--> <a href="https://i.loli.net/2019/06/27/5d1477a9c698876246.png" target="_blank"> <img src="https://i.loli.net/2019/06/27/5d1477a9c698876246.png" width=40%></a> <br><br> ## **3.国際化(i18n) LoginAction.javaの対応** 「LoginAction.java」は下の赤枠表示の内容を書き直します。 <!--graph5-6.png--> <a href="https://i.loli.net/2019/06/27/5d147b4bd700724891.png" target="_blank"> <img src="https://i.loli.net/2019/06/27/5d147b4bd700724891.png" width=40%></a> <br><br> ## **4.国際化(i18n) login.jspの対応** 「login.jsp」は下の赤枠表示の内容を書き直します。 <!--graph5-7.png--> <a href="https://i.loli.net/2019/07/03/5d1c51189bb9192140.png" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c51189bb9192140.png" width=40%></a> <br><br> ## **5.国際化結果の確認** <!--graph5-8.png--> <a href="https://i.loli.net/2019/06/27/5d1493bc3e74d64285.png" target="_blank"> <img src="https://i.loli.net/2019/06/27/5d1493bc3e74d64285.png" width=40%></a> <br> ↓ <!--graph5-9.png--> <a href="https://i.loli.net/2019/06/27/5d1493bca710284556.png" target="_blank"> <img src="https://i.loli.net/2019/06/27/5d1493bca710284556.png" width=40%></a> <br> - **中国語を選んだ場合:** <!--graph5-10.png--> <a href="https://i.loli.net/2019/07/03/5d1c5400d37fa88800.png" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c5400d37fa88800.png" width=40%></a> <br> <!--graph5-11.png--> <a href="https://i.loli.net/2019/07/03/5d1c52262f5ab53886.jpg" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c52262f5ab53886.jpg" width=40%></a> <br> - **英語を選んだ場合:** <!--graph5-12.png--> <a href="https://i.loli.net/2019/07/03/5d1c54012305295791.png" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c54012305295791.png" width=40%></a> <br> <!--graph5-13.png--> <a href="https://i.loli.net/2019/07/03/5d1c54018c43649786.jpg" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c54018c43649786.jpg" width=40%></a> <br> - **日本語を選んだ場合:** <!--graph5-14.png--> <a href="https://i.loli.net/2019/07/03/5d1c540164b8367965.png" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c540164b8367965.png" width=40%></a> <br> <!--graph5-15.png--> <a href="https://i.loli.net/2019/07/03/5d1c540197e9c73970.jpg" target="_blank"> <img src="https://i.loli.net/2019/07/03/5d1c540197e9c73970.jpg" width=40%></a> <br> これで、エラーメッセージの言語がブラウザーの言語によって変わります。
content
戻る