例外を各国語でローカライズできるようにするには、NLSフレームワークを使用します。まず、エラー・メッセージ用のリソース・バンドルを作成します。次のコード例では、3つのエラー・メッセージを格納するMyMsgBundle
という名前のバンドルを定義します。
import oracle.jbo.common.util.CheckedListResourceBundle;
public class MyMsgBundle extends CheckedListResourceBundle
// String Constants
public static final String BAD_EMPNO = "101";
public static final String DEPT_NOT_FOUND = "102";
public static final String NOT_IN_DEPT = "103";
...
/**
* Private 2-D array of key-value pairs
*/
private static final Object[][] sMessageStrings = {
...
{ BAD_EMPNO, "Invalid employee number." },
{ DEPT_NOT_FOUND, "Department {0} does not exist." }
{ NOT_IN_DEPT, "Employee {0} not found in Department {1}." }
...
}
}
次に、リソース・バンドル・クラスを使用し、例外クラスまたはJboException
のコンストラクタに渡す値を定義します。
throw new JboException(MyMsgBundle.class /* Class of Bundle */,
MyMsgBundle.DEPT_NOT_FOUND /* String Constant */,
new Object[1] { localVar1 } /* Arguments to message */
);
JboException
には、指定のロケール用にフォーマットされたメッセージを返すgetLocalizedMessage
メソッドが用意されています。
クライアントで様々な言語でメッセージを表示することが必要な場合があるため、NLSフレームワークでは、メッセージ・テキストを、作成時ではなくクライアントがgetLocalizedMessage
をコールした際に変換します。このメカニズムにより、メッセージのローカライズおよび書式設定を1箇所で処理することが可能になります。
Copyright © 1997, 2004, Oracle. All rights reserved.