この章では、国際化サポートの領域で発生する可能性のある問題をトラブルシューティングするための情報と指針を提供します。詳細については、Java 国際化に関するサイトにアクセスしてください。
トラブルシューティングの前に、国際化とローカリゼーションの違いを理解していることを確認してください。
国際化とは、さまざまな言語や地域への適応 (ローカライズ) を、容易に低コストでソフトウェアを変更せずに行えるようにソフトウェアを設計するプロセスのことです。このプロセスには一般に、プログラム内で言語や文化に依存している部分を分離する作業が含まれます。たとえば、エラーメッセージのテキストはプログラムソースコードから分離された状態に保たれますが、それは、ローカリゼーション時にメッセージを翻訳する必要があるからです。
ローカリゼーションとは、特定ロケールでの使用にプログラムを適応させるプロセスのことです。ロケールとは、同じ言語や慣習を共有する地理的または政治的な地域のことです。ローカリゼーションには、ユーザーインタフェースラベル、エラーメッセージ、オンラインヘルプなどのテキストの翻訳が含まれます。また、データ項目 (通貨値、時間、日付、数値など) の文化固有の書式設定も含まれます。
Java SE プラットフォームのユーザーインタフェースライブラリを使えば、インタラクティブなリッチアプリケーションを開発できます。国際化の側面にはテキスト入力、テキスト表示、ユーザーインタフェースレイアウトが含まれます。次の説明は、国際化と、AWT、Java 2D、および Swing API で提供される機能との関係を示したものです。
テキスト入力とは、キーボードをタイピングするか、インプットメソッド、手書き認識、音声入力などのフロントエンドソフトウェアを使用して、ドキュメントに新しいテキストを入力するプロセスのことです。
テキスト表示はマルチステップのプロセスであり、フォントの選択、段落や行へのテキストの配置、文字または文字シーケンスのグリフの選択、それらのグリフのレンダリング、を含みます。一部の書記法では、双方向テキストレイアウトや複雑な文字からグリフへのマッピングが必要となります。テキスト表示は、軽量ユーザーインタフェースコンポーネントでは Java 2D グラフィックスシステムと Swing ツールキットによって、ピアユーザーインタフェースコンポーネントでは AWT によって、それぞれ処理されます。
ユーザーインタフェースレイアウトは、ローカリゼーションによって発生するテキストの拡大や縮小に対応するほか、ユーザーの書記法の方向に一致する必要があります。
Java 国際化 FAQ ドキュメントでは、一般的な質問に答えるだけでなく、次のような具体的な質問にも答えています。
中国語、日本語、および韓国語のフォントがインストール済みなのにこれらの言語の文字がアプリケーションに表示されないのはなぜですか。
一部の文字が Swing コンポーネントでは表示されるのに、ピア AWT コンポーネントでは表示されないのはなぜですか。
Unicode のフォントがインストール済みなのにアプリケーションで一部の Unicode 文字を表示できないのはなぜですか。
JSP ベースのアプリケーション内の応答文字エンコーディングが、設定後に変わるのはなぜですか。