- PR -

strutsでの国際化対応時のリソースファイルの有無

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-06-24 13:04
お世話になります。

現在、Strutsを使用してリソースファイルを言語・国コードごとに
用意することによって国際化対応を行っているのですが、
そのときに選択された言語・国コードのリソースファイルが
無い場合に例外としようと思っています。

無い場合の判断をリソースファイル中の適当なkeyに
よって検索をして取得できなければリソースファイルは
無しと判断しようとしました。
ですが、Strutsでのリソースファイルの検索順が
・指定された言語・国
 ・指定された言語
 ・システムデフォルトの言語・国
 ・システムデフォルトの言語
 ・デフォルト
の順で、このとき指定された言語・国コードのリソースファイルが無い場合
システムデフォルトをとりにいってしまいます。
今のシステムのデフォルトは日本であり
また、選択できる言語・国コードにも日本が含まれているため
システムデフォルトのリソースファイルを削除することはできません。


また、直接参照をして有無を確認しようと思ったのですが、
リソースファイルの配置場所が変わると
動かない可能性があるため、だめでした。


どのようにして、指定されたリソースファイルが
あるかを判断すればよいのでしょうか?


よろしくお願いします。

シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-06-24 13:42
簡単そうなのは…

1.各プロパティファイルに、自分がデフォルトであるかそうでないかを表明する
エントリを追加 isDefault=true/falseとか。
2.プログラム内部でResourceBundle#getString()で上記エントリを取ってみて、
今使っているリソースがデフォルトかどうか判断。

といったあたりでどうですか。
1

スキルアップ/キャリアアップ(JOB@IT)