第16章 国際化とローカリゼーションおよびテーマ


アプリケーションの国際化およびローカライズにはいくつかのステージが必要となります。

注記

国際化の機能は JSF コンテキストでのみ使用可能です。

16.1. アプリケーションの国際化

Java EE 5 アプリケーションは数多くのコンポーネントから構成されています。アプリケーションをローカライズするにはこれらのコンポーネントすべてが正しく設定されていなければなりません。
開始する前に、 データベースのサーバーとクライアントがロケールに対応する正しい文字エンコーディングを使用していることを確認します。 通常、 UTF-8 エンコーディングを使用するのが一般的です (正しいエンコーディングの設定方法については本チュートリアルの範囲外です)。

16.1.1. アプリケーションサーバーの設定

アプリケーションサーバーが要求パラメータを正しいエンコーディングでクライアントの要求から受け取るようにするには、Tomcat コネクタを設定する必要があります。URIEncoding="UTF-8" 属性を $JBOSS_HOME/server/$PROFILE/deploy/jboss-web.deployer/server.xml のコネクタ設定に追加します。
<Connector port="8080" URIEncoding="UTF-8"/>
Copy to Clipboard Toggle word wrap
代わりに、JBoss AS に要求パラメータの適切なエンコーディングはその要求から取得するよう指示することもできます。
<Connector port="8080" useBodyEncodingForURI="true"/>
Copy to Clipboard Toggle word wrap

16.1.2. 翻訳されたアプリケーション文字列

アプリケーション内のすべての メッセージ にも翻訳された文字列が必要となります (ビューのフィールドラベルなど)。 まず、 リソースバンドルが目的の文字エンコーディングを使ってコード化されることを確認します。 デフォルトでは ASCII が使用されます。 ASCII は十分多くの言語に対応していますが、 すべての言語の文字を取り扱っているわけではありません。
リソースバンドルは ASCII で作成されるか、Unicode 文字の表示に Unicode エスケープのコードを使用する必要があります。 バイトコードに対してプロパティファイルをコンパイルしないため、使用する文字セットを JVM に伝える方法がありません。 このため、 ASCII 文字または ASCII 文字セットにはないエスケープ文字を使用しなければなりません。 \uXXXX を使用するといずれの Java ファイルでも Unicode 文字を表すことができます。 XXXX はその文字を表す 16 進数です。
ラベルの翻訳はメッセージリソースバンドルにネイティブエンコーディングで書き込むことができます (「ラベル」)。ネイティブエンコーディングで書き込んだファイルの内容は、JDK で提供される native2ascii ツールを使って、Unicode エスケープシーケンスで ASCII 以外の文字を表すものに変換することができます。
このツールの使い方は Java 6 の場合はこちら に記載されています。 たとえば、 あるファイルを UTF-8 から変換するには次のようにします。
 $ native2ascii -encoding UTF-8 messages_cs.properties > messages_cs_escaped.properties 
Copy to Clipboard Toggle word wrap

16.1.3. その他のエンコーディング設定

確認する必要があるのは、正しい文字セットを使ってローカライズされたデータとメッセージが表示されること、 そしてサブミットされたデータがすべて正しいエンコーディングを使用することです。
表示文字のエンコーディングを設定するには <f:view locale="cs_CZ"/> タグを使用します (この locale 値は JSF にチェコ語を使用するよう指示します)。XML にローカライズされた文字列を埋め込む場合に、XML ドキュメント自体のエンコーディングを変更したいと思われるかもしれません。これを行うには XML 宣言の <?xml version="1.0" encoding="UTF-8"?> にある encoding 属性値を変更します。
JSF や Facelet は指定文字エンコーディングを使った要求をサブミットするはずです。ただし、 エンコーディングを指定していない要求がサブミットされるようにするには、 要求エンコーディングにサーブレットフィルタを強制的に使用させることができます。 components.xml で設定します。
<web:character-encoding-filter encoding="UTF-8" override-client="true" 
     url-pattern="*.seam" />
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat