2012年5月8日火曜日

JRE (Java SE Runtime Environment) 6 でサポートされているロケール

サポートされるロケールのセットは、Java SE (Java Platform Standard Edition) の実装や機能範囲の違いにより異なります。

ここでは、次の分野において Sun の JDK (Java SE Development Kit) 6 および JRE (Java SE Runtime Environment) 6 でサポートされるロケールについて説明します。

  1. java.util および java.text 機能で有効なロケール
  2. Java Foundation Class (JFC) で有効な書記体系
    1. 概要
    2. テキスト入力
    3. テキストのレンダリング
    4. ドラッグ&ドロップ
  3. ユーザーインタフェースの翻訳

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

UTF-8(4)

非サポート

中国語 (簡体字)

中国語

936,
GB18030

gb2312、
UTF-8、
GBK、
gb18030

GB2312(2),
GB18030(3)(5)
UTF-8(4)(5)(7)

サポート

中国語 (繁体字)

中国語

950,
HKSCS

cns11643、
UTF-8、
BIG5、
BIG5HK

Big5(2)(3),
UTF-8(4)(5)

サポート

キリル

ベロルシア語、ロシア語など

1251

8859-5,
KOI8-R、

UTF-8

非サポート

サポート

デーバナーガリー

ヒンディー語

UTF-8

UTF-8

非サポート

非サポート

ギリシャ語

ギリシャ語

1253

8859-7

非サポート

サポート

ヘブライ語

ヘブライ語

1255

8859-8

UTF-8(4)

非サポート

日本語

日本語

932

eucJP(1)
UTF-8、
PCK

eucJP(1)(2)(3),
UTF-8(4)(5)(7)

サポート

韓国語

韓国語

949

5601,
UTF-8

EUC-KR(2)(3),
UTF-8(4)(5)

サポート

ラテン - バルト語派のサブセット

ラトビア語、リトアニア語

1257

8859-13

非サポート

サポート

ラテン - 中欧語派サブセット

チェコ語、ハンガリー語、ポーランド語など

1250

8859-2,
UTF-8

非サポート

サポート

ラテン - マルタ語派サブセット

マルタ語

UTF-8

UTF-8

非サポート

サポート

ラテン - トルコ語派サブセット

トルコ語など

1254

8859-9,
UTF-8

非サポート

サポート

ラテン - 西欧語派サブセット

英語、フランス語、ドイツ語、イタリア語、スペイン語、スウェーデン語など

1252

8859-1,
8859-15,
UTF-8

ISO-8859-1(2)
UTF-8(3)(4)(5)(6),

サポート

タイ語

タイ語

874

TIS620.2533、
UTF-8

非サポート

非サポート

(1) Solaris 上の eucJP は JIS 文字セットの X 0201、X 0208、および X 0212 をサポートし、Linux 上の eucJP は X 0201 と X 0208 のみをサポートする。 (2) Red Hat Enterprise Linux AS 2.1 上でサポートする
(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 件のコメント:

コメントを投稿