- PR -

JSFの国際化対応について

1
投稿者投稿内容
キタキツネ
常連さん
会議室デビュー日: 2006/11/23
投稿数: 32
お住まい・勤務地: 沖縄県名護市
投稿日時: 2007-06-22 00:10
こんにちは。早速質問させてください。
現在構築予定のWebシステムで国際化対応をする必要があります。調べてみたところ、JSFで対応できそうなので、こちらの採用を考えています。
ただ、実際に国際化対応のシステムを構築したことがなく、本当に大丈夫なのか不安が残っています。

やりたいのはこんなことです:
ログイン画面で使用したい言語を選択してもらう(コンボボックス・ラジオボタン等)。
ログイン後は選択した言語の文言が表示されている。

画面のラベル部分をResourceBundleから取得した文字列で表示するようにしてあげれば大丈夫なのかなぁ、と思っています。実際に国際化対応をやって、問題が発生したことなどを教えて頂ければありがたいです。

よろしくお願いします。
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-06-22 08:31
properties使用でしょうに
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-06-22 13:05
JSFの国際化対応はこんな感じです。
正確なところは仕様を確認してみて下さい。

1. RestoreViewしたUIViewRootのlocaleプロパティを確認する
 ⇒ すでに設定されているならそれを使う
2. リクエストのAccept-Languageヘッダを確認する
 ⇒ faces-config.xmlの<supported-locale>に含まれていればそれを使う
3. faces-config.xmlの<default-locale>を確認する
 ⇒ 設定されていればそれを使う
4. システム(VM)のデフォルトを使う

セッション開始時には2.でユーザーがブラウザに設定した
言語の設定を使うことになるので、選択欄の初期値にもできます。

#多言語圏での状況は知りませんが、素人ユーザーって変更するかなぁ?
#その前にIEとかのブラウザのデフォルト設定ってどうなってるんだろう?

強制的な変更はUIViewRoot#setLocale()でできます。

画面側はプロパティファイルでリソースを切り分ければ表示は大抵OKです。
言語による長さや順序の差を考慮しながら<h:outputFormat>を駆使しましょう。

一部でjstlを使ってたりするとロケール設定の共有も必要になります。

あとは、タイムゾーンが絡むと違ったベクトルで面倒だったりします。
キタキツネ
常連さん
会議室デビュー日: 2006/11/23
投稿数: 32
お住まい・勤務地: 沖縄県名護市
投稿日時: 2007-06-24 14:48
返答ありがとうございました。
サンプル作ってためしてみたのですが、問題なく動きそうです。
ありがとうございました。
1

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