サポートされるロケールのセットは、Java SE (Java Platform Standard Edition) の実装や機能範囲の違いにより異なります。
ここでは、次の分野において Sun の JDK (Java SE Development Kit) 6 および JRE (Java SE Runtime Environment) 6 でサポートされるロケールについて説明します。
Sun の Java SE Runtime Environment 6 の Windows 版は、完全な国際版とヨーロッパ言語版のどちらのバージョンでもインストールすることができます。JRE のインストールプログラムは、ホストオペレーティングシステムがヨーロッパ言語だけをサポートしていることを識別すると、デフォルトでヨーロッパ言語版をインストールします。インストールプログラムが他の言語の必要性を識別した場合、またはカスタマイズされたインストールでユーザーがヨーロッパ言語以外のサポートを要求した場合は、完全な国際化版がインストールされます。Solaris および Linux 版の JRE と、すべてのプラットフォーム版の JDK では、完全な国際化版が常にインストールされます。
1. java.util および java.text 機能で有効なロケール
java.util および java.text パッケージでのロケールに依存する動作のサポートは、ほぼ完全にプラットフォームから独立しています。そのため、すべてのロケールは、ホストのオペレーティングシステムとその地域には依存せず、同じ方法で同時にサポートされます。プラットフォームに依存している唯一の機能は、ホストオペレーティングシステムのロケールとタイムゾーンに基づいた、最初のデフォルトのロケールおよび最初のデフォルトのタイムゾーンの設定です。
Sun の Java SE Development Kit 6 と国際化版の Java SE Runtime Environment 6 は、次に示すロケールをすべてサポートしています。ヨーロッパ言語版の Java SE Runtime Environment 6 は、次の言語に対応するロケールをすべてサポートしています。アルバニア語、ベロルシア語、ブルガリア語、カタロニア語、クロアチア語、チェコ語、デンマーク語、オランダ語、英語、エストニア語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ハンガリー語、アイスランド語、インドネシア語、イタリア語、ラトビア語、リトアニア語、マケドニア語、マレー語、マルタ語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語 (キリル)、スロバキア語、スロベニア語、スペイン語、スウェーデン語、トルコ語、ウクライナ語。
サポートされているロケール
言語 | 国 | ロケール ID |
---|---|---|
アルバニア語 | アルバニア | sq_AL |
アラビア語 | アルジェリア | ar_DZ |
アラビア語 | バーレーン | ar_BH |
アラビア語 | エジプト | ar_EG |
アラビア語 | イラク | ar_IQ |
アラビア語 | ヨルダン | ar_JO |
アラビア語 | クウェート | ar_KW |
アラビア語 | レバノン | ar_LB |
アラビア語 | リビア | ar_LY |
アラビア語 | モロッコ | ar_MA |
アラビア語 | オマーン | ar_OM |
アラビア語 | カタール | ar_QA |
アラビア語 | サウジアラビア | ar_SA |
アラビア語 | スーダン | ar_SD |
アラビア語 | シリア | ar_SY |
アラビア語 | チュニジア | ar_TN |
アラビア語 | アラブ首長国連邦 | ar_AE |
アラビア語 | イエメン | ar_YE |
ベロルシア語 | ベロルシア | be_BY |
ブルガリア語 | ブルガリア | bg_BG |
カタロニア語 | スペイン | ca_ES |
中国語 (簡体字) | 中国 | zh_CN |
中国語 (簡体字) | シンガポール | zh_SG(*) |
中国語 (繁体字) | 香港 | zh_HK |
中国語 (繁体字) | 台湾 | zh_TW |
クロアチア語 | クロアチア | hr_HR |
チェコ語 | チェコ共和国 | cs_CZ |
デンマーク語 | デンマーク | da_DK |
オランダ語 | ベルギー | nl_BE |
オランダ語 | オランダ | nl_NL |
英語 | オーストラリア | en_AU |
英語 | カナダ | en_CA |
英語 | インド | en_IN |
英語 | アイルランド | en_IE |
英語 | マルタ | en_MT(*) |
英語 | ニュージーランド | en_NZ |
英語 | フィリピン | en_PH(*) |
英語 | シンガポール | en_SG(*) |
英語 | 南アフリカ | en_ZA |
英語 | 英国 | en_GB |
英語 | 米国 | en_US |
エストニア語 | エストニア | et_EE |
フィンランド語 | フィンランド | fi_FI |
フランス語 | ベルギー | fr_BE |
フランス語 | カナダ | fr_CA |
フランス語 | フランス | fr_FR |
フランス語 | ルクセンブルク | fr_LU |
フランス語 | スイス | fr_CH |
ドイツ語 | オーストリア | de_AT |
ドイツ語 | ドイツ | de_DE |
ドイツ語 | ルクセンブルク | de_LU |
ドイツ語 | スイス | de_CH |
ギリシャ語 | キプロス | el_CY(*) |
ギリシャ語 | ギリシャ | el_GR |
ヘブライ語 | イスラエル | iw_IL |
ヒンディー語 | インド | hi_IN |
ハンガリー語 | ハンガリー | hu_HU |
アイスランド語 | アイスランド | is_IS |
インドネシア語 | インドネシア | in_ID(*) |
アイルランド語 | アイルランド | ga_IE(*) |
イタリア語 | イタリア | it_IT |
イタリア語 | スイス | it_CH |
日本語 (グレゴリオ暦) | 日本 | ja_JP |
日本語 (和暦) | 日本 | ja_JP_JP |
韓国語 | 韓国 | ko_KR |
ラトビア語 | ラトビア | lv_LV |
リトアニア語 | リトアニア | lt_LT |
マケドニア語 | マケドニア | mk_MK |
マレー語 | マレーシア | ms_MY(*) |
マルタ語 | マルタ | mt_MT(*) |
ノルウェー語 (ボークモールå) | ノルウェー | no_NO |
ノルウェー語 (ニーノスク) | ノルウェー | no_NO_NY |
ポーランド語 | ポーランド | pl_PL |
ポルトガル語 | ブラジル | pt_BR(*) |
ポルトガル語 | ポルトガル | pt_PT(*) |
ルーマニア語 | ルーマニア | ro_RO |
ロシア語 | ロシア | ru_RU |
セルビア語 (キリル) | ボスニア - ヘルツェゴヴィナ | sr_BA(*) |
セルビア語 (キリル) | セルビア - モンテネグロ | sr_CS(*) |
スロバキア語 | スロバキア | sk_SK |
スロベニア語 | スロベニア | sl_SI |
スペイン語 | アルゼンチン | es_AR |
スペイン語 | ボリビア | es_BO |
スペイン語 | チリ | es_CL |
スペイン語 | コロンビア | es_CO |
スペイン語 | コスタリカ | es_CR |
スペイン語 | ドミニカ共和国 | es_DO |
スペイン語 | エクアドル | es_EC |
スペイン語 | エルサルバドル | es_SV |
スペイン語 | グアテマラ | es_GT |
スペイン語 | ホンジュラス | es_HN |
スペイン語 | メキシコ | es_MX |
スペイン語 | ニカラグア | es_NI |
スペイン語 | パナマ | es_PA |
スペイン語 | パラグアイ | es_PY |
スペイン語 | ペルー | es_PE |
スペイン語 | プエルトリコ | es_PR |
スペイン語 | スペイン | es_ES |
スペイン語 | 米国 | es_US(*) |
スペイン語 | ウルグアイ | es_UY |
スペイン語 | ベネズエラ | es_VE |
スウェーデン語 | スウェーデン | sv_SE |
タイ語 (西洋数字) | タイ | th_TH |
タイ語 (タイ語数字) | タイ | th_TH_TH |
トルコ語 | トルコ | tr_TR |
ウクライナ語 | ウクライナ | uk_UA |
ベトナム語 | ベトナム | vi_VN |
(*) これらのロケールに関するデータは、Unicode Consortium の Common Locale Data Repository リリース 1.4 からそのまま抜粋したものです。
2. Java Foundation Class (JFC) で有効な書記法
2.1 概要
Java Foundation Classes (AWT、Swing、2D、Input Method Framework、ドラッグ&ドロップ) の場合は、通常、ロケールは書記体系によってのみ特徴付けられ、国や言語による特別な違いはありません。JFC 内の書記体系のサポートは、ホストオペレーティングシステムにある程度依存しており、複数言語の同時使用は、常に完全にサポートされるとは限りません。
ここでは、ある書記体系に対して、JFC によるすべての機能が次の状況で適切に動作する場合に、その書記体系が JFC でサポートされているとみなします。
- Windows 98 の場合、その書記法を使用する言語によってローカライズされた Windows システムで実行されるとき。
- Windows 2000、XP、および 2003 の場合、ユーザーロケールおよびシステムロケールの両方がその書記法を使用する言語に設定された Windows システムで実行されるとき
- Solaris および Linux の場合、その書記体系を使用する言語、および下の表に示されている、その書記体系のエンコーディングの 1 つに設定されたロケールを使って、ホストオペレーティングシステムで実行されるとき
Sun の Java SE Development Kit 6 と国際化版の Java SE Runtime Environment 6 は、次に示す書記法をすべてサポートしています。ヨーロッパ言語版の Java SE Runtime Environment 6 は、キリル、ギリシャ語、およびラテンの書記法だけをサポートしています。ピア AWT コンポーネントは、書記体系のサブセットに対してのみサポートされます。表の右端の列を参照してください。
機能のそれぞれの範囲については、後の各項で詳しく説明します。
サポートされる書記法
書記体系 | 言語 | Windows エンコーディング | Solaris エンコーディング | Linux エンコーディング | ピア AWT コンポーネント |
---|---|---|---|---|---|
アラビア語 | アラビア語 | 1256 | 8859-6, | UTF-8(4) | 非サポート |
中国語 (簡体字) | 中国語 | 936, | gb2312、 | サポート | |
中国語 (繁体字) | 中国語 | 950, | cns11643、 | サポート | |
キリル | ベロルシア語、ロシア語など | 1251 | 8859-5, | 非サポート | サポート |
デーバナーガリー | ヒンディー語 | UTF-8 | UTF-8 | 非サポート | 非サポート |
ギリシャ語 | ギリシャ語 | 1253 | 8859-7 | 非サポート | サポート |
ヘブライ語 | ヘブライ語 | 1255 | 8859-8 | UTF-8(4) | 非サポート |
日本語 | 日本語 | 932 | eucJP(1)、 | サポート | |
韓国語 | 韓国語 | 949 | 5601, | サポート | |
ラテン - バルト語派のサブセット | ラトビア語、リトアニア語 | 1257 | 8859-13 | 非サポート | サポート |
ラテン - 中欧語派サブセット | チェコ語、ハンガリー語、ポーランド語など | 1250 | 8859-2, | 非サポート | サポート |
ラテン - マルタ語派サブセット | マルタ語 | UTF-8 | UTF-8 | 非サポート | サポート |
ラテン - トルコ語派サブセット | トルコ語など | 1254 | 8859-9, | 非サポート | サポート |
ラテン - 西欧語派サブセット | 英語、フランス語、ドイツ語、イタリア語、スペイン語、スウェーデン語など | 1252 | 8859-1, | サポート | |
タイ語 | タイ語 | 874 | TIS620.2533、 | 非サポート | 非サポート |
(3) Red Hat Enterprise Linux 3 AS、ES、WS 上でサポートする。
(4) Red Hat Enterprise Linux 4 AS、ES、WS 上でサポートする。
(5) Sun Java Desktop System リリース 3 上でサポートする
(6) SuSE Linux 10、SuSE Linux Enterprise Server 9 上でサポートする。
(7) Turbolinux 10 Desktop 上でサポートする
2.2 テキスト入力
テキスト入力に対するサポートは、キーボード配列の解釈と、インプットメソッドを使用したテキスト変換の、2 つの部分から構成されます。Java SE では、キーボード配列の解釈は、ホストオペレーティングシステムに全面的に依存しています。インプットメソッドを使用したテキスト変換については、Java SE では、Java プログラミング言語で開発されたインプットメソッドのほかに、ホストオペレーティングシステムのインプットメソッドマネージャーを使用した、ネイティブインプットメソッドもサポートされます。
Java プログラミング言語により実装されたインプットメソッドによるロケールのサポートは、インストールされているインプットメソッドのセットにのみ依存し、ホストオペレーティングシステムとそのローカリゼーションには依存しません。ただし、Java プログラミング言語により実装されたインプットメソッドをピアコンポーネントで使用する場合のサポートは、以下のように、その実装方法に依存します。
キーボード配列とネイティブインプットメソッドのサポートは、プラットフォームによって異なります。
Windows
Windows 98 では、JRE は、すべてのキーボード配列と、特定ローカライズ版のホストオペレーティングシステムにインストール可能な、IMM ベースのインプットメソッドの使用をサポートします。
Windows 2000、XP、および 2003 では、JRE は、すべてのキーボード配列と IMM ベースのインプットメソッドの使用をサポートします。
グローバル IME はサポートされません。
Java プログラミング言語に実装されたインプットメソッドは、Windows のすべてのバージョンのすべてのコンポーネントでサポートされます。
Solaris および Linux
JRE は、すべてのキーボード配列と、特定の Solaris または Linux ロケールで使用可能なインプットメソッドの使用をサポートします。
Java プログラミング言語に実装されたインプットメソッドは、Swing テキストコンポーネントなどの軽量コンポーネントでサポートされますが、AWT テキストコンポーネントなどのピアコンポーネントではサポートされません。
2.3 テキストのレンダリング
アプリケーションには、フォントを選択する 2 つのオプションがあります。
- 論理フォント名の Serif、SansSerif、Dialog、DialogInput、および Monospaced の使用
- 物理フォントの使用 (名前を指定して要求するか、
Font.createFont
メソッドでインスタンスを生成する)
軽量コンポーネント内でのテキストのレンダリング
論理フォント名を使用する場合は、少なくとも、ホストのロケールの書記体系と、ラテン書記体系の西欧語派サブセットによるテキストがサポートされます。
物理フォントを使用する場合は、単純書記体系と複雑書記体系を区別する必要があります。単純書記体系では文字とグリフが 1 対 1 で対応し、各グリフはベースライン上に左から右へと連続して配置されています。複雑書記法では、同じ文字でも文脈によって異なるグリフが使用されたり、合字が使用されたり、右から左へと書かれる場合があります。また、行のレイアウト中に再配置されたり、結合記号などにより、グリフの配置に別の規則が適用されることもあります。
2D のテキストレンダリングシステムでは、上の表に一覧表示されている単純書記体系と複雑書記体系のどのような組み合わせでもサポートされます。これらの制限内では、サポートされる書記体系の範囲はフォントによって決まります。1 つの TrueType フォントで、Unicode 全体に対応するグリフと、Unicode ベースの文字からグリフへの 1 つのマッピング情報を提供できます。このようなフォントによって、2D ではすべての単純書記体系のほか、複雑書記体系もサポートできます。その他の複雑書記体系はサポートされません。
ピアコンポーネント内でのテキストのレンダリング
論理フォント名を使用する場合は、少なくとも、ホストオペレーティングシステムのロケールの書記法によるテキストがサポートされます。
ピアコンポーネントでは、物理フォントはサポートされません。
印刷時のテキストのレンダリング
印刷 API には、次の 3 つがあります。
- java.awt.print.PrinterJob.getPrinterJob メソッドを使用する 2D 印刷 API
- java.awt.Toolkit.getPrintJob メソッドを使用する AWT 印刷 API
- javax.print パッケージを使用する、プラグ可能サービスの印刷 API
AWT および 2D の印刷 API を使用したテキストレンダリングは、画面上のテキストレンダリングと同等の機能です。プラグイン機能サービスの印刷 API を使用したテキストレンダリングは、使用する印刷サービスによって異なります。 JRE により提供されるサービスは、画面上のテキストレンダリングと同等の機能です。
2.4 ドラッグ&ドロップ
Windows 98 の場合、ホストオペレーティングシステムのローカライズされた書記法によるテキストは、アプリケーション間で転送できます。
Windows 2000、XP、および 2003 の場合、すべての Unicode 文字セットを使用したテキストをアプリケーション間で転送できます。
Solaris および Linux の場合、ホストオペレーティングシステムのロケールの文字エンコーディングによるテキストをアプリケーション間で転送できます。
ホストオペレーティングシステムから独立した任意のテキストを転送する必要のあるアプリケーションでは、直列化を使用してテキストを転送します。それには、DataFlavor.stringFlavor フレーバのみをサポートする Transferable を作成します。このフレーバは、String の直列化表現を表します。転送先でも stringFlavor がサポートされていることを確認してください。転送時に、AWT は転送元で String を直列化し、転送先で直列化を解除します。この動作はネイティブプラットフォームのテキスト転送よりもかなり低速ですが、ネイティブの転送が利用できない場合に有効です。
3. ユーザーインタフェースの翻訳
Java SE Runtime Environment
Java SE Runtime Environment 6 で提供されるユーザーインタフェース要素には、Swing ダイアログや、実行環境によって標準出力ストリームと標準エラーストリームに書き出されるメッセージのほか、JRE の付属ツールによって生成されるメッセージも含まれます。ユーザーインタフェース要素は次の言語にローカライズされます。
言語 | ロケール ID |
---|---|
中国語 (簡体字) | zh_CN |
中国語 (繁体字) | zh_TW |
英語 | en |
フランス語 | fr |
ドイツ語 | de |
イタリア語 | it |
日本語 | ja |
韓国語 | ko |
スペイン語 | es |
スウェーデン語 | sv |
Java SE Development Kit
Java SE Development Kit 6 で提供されるユーザーインタフェース要素には、JRE で提供される要素に加えて、JDK 専用ツールによって生成されるメッセージも含まれます。追加のユーザーインタフェース要素は、以下の言語にローカライズされます。
言語 | ロケール ID |
---|---|
中国語 (簡体字) | zh_CN |
英語 | en |
日本語 | ja |
0 件のコメント:
コメントを投稿