JavaTM 2 Platform
Standard Ed. 5.0

java.util
クラス Locale

java.lang.Object
  上位を拡張 java.util.Locale
すべての実装されたインタフェース:
Serializable, Cloneable

public final class Locale
extends Object
implements Cloneable, Serializable

Locale オブジェクトは、特定の地理的、国家的、または文化的地域を表すためのものです。ある操作で Locale を必要とするタスクがある場合、その操作をロケールに依存する操作といいます。この場合、情報は Locale によりユーザに合わせて調整されます。たとえば、数値を表示するのは、ロケールに依存する操作です。この数値は、ユーザの国や地域、文化の習慣や規則に従ってフォーマットする必要があります。

Locale オブジェクトを作成するには、このクラスのコンストラクタを使用します。


 Locale(String language)
 Locale(String language, String country)
 Locale(String language, String country, String variant)
 
言語の引数は、有効な ISO 言語コードです。これらのコードは、ISO-639 で定義される 2 桁の小文字です。コードの完全なリストは、
http://www.loc.gov/standards/iso639-2/englangn.html など、多数のサイトで入手できます。

国の引数は、有効な ISO 国コードです。これらのコードは、ISO-3166 で定義される 2 桁の大文字です。コードの完全なリストは、
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html など、多数のサイトで入手できます。

バリアントの引数はベンダーまたはブラウザに固有のコードです。たとえば、Windows には WIN、Macintosh には MAC、POSIX には POSIX を使用します。バリアントが 2 つある場合には、それらを下線で区切り、重要なものを最初に指定します。たとえば、Traditional Spanish (イスパニア語) の照合を使用する場合は、言語、国、バリアントのパラメータとして、「es」、「ES」、および「Traditional_WIN」を指定してロケールを構築します。

Locale オブジェクトは、ある地域を示す単なる識別子なので、Locale を構築する際、それが妥当かどうかの検査は行われません。構築する Locale に対し特定のリソースがあるかどうかを調べるには、これらのリソースの照会を行う必要があります。たとえば、NumberFormat に、その getAvailableLocales メソッドを使用して、サポートするロケールを照会します。
注: 特定のロケールのリソースを求めると、合致する最善のリソースが返されますが、これは必ずしも要求したとおりの内容ではありません。詳細については、ResourceBundle を参照してください。

Locale クラスには、いくつかの便利な定数があるので、これらを使用して、よく使われるロケールの Locale オブジェクトを作成することができます。たとえば、次の例は、米国の Locale オブジェクトを作成する例です。


 Locale.US
 

Locale を作成したあとは、このオブジェクトにそれ自身の情報を照会することができます。ISO 国コードを得るには getCountry を、ISO 言語コードを得るには getLanguage をそれぞれ使用します。getDisplayCountry を使用すれば、適した国名がユーザに表示されます。同じように、getDisplayLanguage を使用すれば、適した言語の名前がユーザに表示されます。興味深いことに、getDisplayXXX メソッド自体もロケールに依存します。これには 2 つのバージョンがあり、一方はデフォルトのロケールを使用し、他方は引数として指定されたロケールを使用します。

Java 2 プラットフォームには、ロケールに依存する操作を行ういくつかのクラスがあります。たとえば、NumberFormat クラスは、数値や通貨、パーセントをロケールに依存する形でフォーマットします。NumberFormat などのクラスには、この型のオブジェクトを作成するための簡易メソッドがいくつかあります。たとえば、NumberFormat クラスには、デフォルトの NumberFormat オブジェクトを作成するために次の 3 つのメソッドがあります。


 NumberFormat.getInstance()
 NumberFormat.getCurrencyInstance()
 NumberFormat.getPercentInstance()
 
これらのメソッドには 2 つのバリアントがあります。明示的なロケールを持つものと、持たないものです。後者の場合はデフォルトロケールが使用されます。

 NumberFormat.getInstance(myLocale)
 NumberFormat.getCurrencyInstance(myLocale)
 NumberFormat.getPercentInstance(myLocale)
 
Locale は、どのオブジェクト (NumberFormat) を使用するかを指定するための機構です。ロケールは、オブジェクトを指定するための単なる機構であり、オブジェクト自体のコンテナではありません。

導入されたバージョン:
1.1
関連項目:
ResourceBundle, Format, NumberFormat, Collator, 直列化された形式

フィールドの概要
static Locale CANADA
          国に使用する定数です。
static Locale CANADA_FRENCH
          国に使用する定数です。
static Locale CHINA
          国に使用する定数です。
static Locale CHINESE
          言語に使用する定数です。
static Locale ENGLISH
          言語に使用する定数です。
static Locale FRANCE
          国に使用する定数です。
static Locale FRENCH
          言語に使用する定数です。
static Locale GERMAN
          言語に使用する定数です。
static Locale GERMANY
          国に使用する定数です。
static Locale ITALIAN
          言語に使用する定数です。
static Locale ITALY
          国に使用する定数です。
static Locale JAPAN
          国に使用する定数です。
static Locale JAPANESE
          言語に使用する定数です。
static Locale KOREA
          国に使用する定数です。
static Locale KOREAN
          言語に使用する定数です。
static Locale PRC
          国に使用する定数です。
static Locale SIMPLIFIED_CHINESE
          言語に使用する定数です。
static Locale TAIWAN
          国に使用する定数です。
static Locale TRADITIONAL_CHINESE
          言語に使用する定数です。
static Locale UK
          国に使用する定数です。
static Locale US
          国に使用する定数です。
 
コンストラクタの概要
Locale(String language)
          言語コードからロケールを構築します。
Locale(String language, String country)
          言語、国からロケールを構築します。
Locale(String language, String country, String variant)
          言語、国、バリアントからロケールを構築します。
 
メソッドの概要
 Object clone()
          Cloneable をオーバーライドします。
 boolean equals(Object obj)
          この Locale がもう 1 つのオブジェクトと等しい場合に true を返します。
static Locale[] getAvailableLocales()
          インストールされているすべてのロケールの配列を返します。
 String getCountry()
          ロケールの国/地域コードを返します。
static Locale getDefault()
          Java 仮想マシンのこのインスタンスに対して、デフォルトロケールの現在の値を取得します。
 String getDisplayCountry()
          ユーザへの表示に適した、ロケールの国の名前を返します。
 String getDisplayCountry(Locale inLocale)
          ユーザへの表示に適した、ロケールの国の名前を返します。
 String getDisplayLanguage()
          ユーザへの表示に適した、ロケールの言語の名前を返します。
 String getDisplayLanguage(Locale inLocale)
          ユーザへの表示に適した、ロケールの言語の名前を返します。
 String getDisplayName()
          ユーザへの表示に適した、ロケールの名前を返します。
 String getDisplayName(Locale inLocale)
          ユーザへの表示に適した、ロケールの名前を返します。
 String getDisplayVariant()
          ユーザへの表示に適した、ロケールのバリアントコードの名前を返します。
 String getDisplayVariant(Locale inLocale)
          ユーザへの表示に適した、ロケールのバリアントコードの名前を返します。
 String getISO3Country()
          ロケールの国の 3 文字の省略形を返します。
 String getISO3Language()
          ロケールの言語の 3 文字の省略形を返します。
static String[] getISOCountries()
          ISO 3166 で定義されている 2 桁の国コードのリストを返します。
static String[] getISOLanguages()
          ISO 639 で定義されている 2 桁の言語コードのリストを返します。
 String getLanguage()
          ロケールの言語コードを返します。
 String getVariant()
          ロケールのバリアントコードを返します。
 int hashCode()
          hashCode をオーバーライドします。
static void setDefault(Locale newLocale)
          Java 仮想マシンのこのインスタンスに対するデフォルトロケールを設定します。
 String toString()
          ロケール全体のプログラム上の名前を取得します。
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

ENGLISH

public static final Locale ENGLISH
言語に使用する定数です。


FRENCH

public static final Locale FRENCH
言語に使用する定数です。


GERMAN

public static final Locale GERMAN
言語に使用する定数です。


ITALIAN

public static final Locale ITALIAN
言語に使用する定数です。


JAPANESE

public static final Locale JAPANESE
言語に使用する定数です。


KOREAN

public static final Locale KOREAN
言語に使用する定数です。


CHINESE

public static final Locale CHINESE
言語に使用する定数です。


SIMPLIFIED_CHINESE

public static final Locale SIMPLIFIED_CHINESE
言語に使用する定数です。


TRADITIONAL_CHINESE

public static final Locale TRADITIONAL_CHINESE
言語に使用する定数です。


FRANCE

public static final Locale FRANCE
国に使用する定数です。


GERMANY

public static final Locale GERMANY
国に使用する定数です。


ITALY

public static final Locale ITALY
国に使用する定数です。


JAPAN

public static final Locale JAPAN
国に使用する定数です。


KOREA

public static final Locale KOREA
国に使用する定数です。


CHINA

public static final Locale CHINA
国に使用する定数です。


PRC

public static final Locale PRC
国に使用する定数です。


TAIWAN

public static final Locale TAIWAN
国に使用する定数です。


UK

public static final Locale UK
国に使用する定数です。


US

public static final Locale US
国に使用する定数です。


CANADA

public static final Locale CANADA
国に使用する定数です。


CANADA_FRENCH

public static final Locale CANADA_FRENCH
国に使用する定数です。

コンストラクタの詳細

Locale

public Locale(String language,
              String country,
              String variant)
言語、国、バリアントからロケールを構築します。注: ISO 639 は確定した規格ではありません。ISO 639 で定義された一部の言語コード (たとえば、iw、ji、および in) は変更されています。このコンストラクタは、従来のコード (iw、ji、および in) と新しいコード (he、yi、および id) の両方を受け取りますが、Locale の他のすべての API では、古い方のコードだけが返されます。

パラメータ:
language - 2 桁の小文字からなる ISO-639 コード
country - 2 桁の大文字からなる ISO-3166 コード
variant - ベンダーとブラウザに固有のコード。クラスの説明を参照
例外:
NullPointerException - 引数が null の場合にスローされる

Locale

public Locale(String language,
              String country)
言語、国からロケールを構築します。注: ISO 639 は確定した規格ではありません。ISO 639 で定義された一部の言語コード (たとえば、iw、ji、および in) は変更されています。このコンストラクタは、従来のコード (iw、ji、および in) と新しいコード (he、yi、および id) の両方を受け取りますが、Locale の他のすべての API では、古い方のコードだけが返されます。

パラメータ:
language - 2 桁の小文字からなる ISO-639 コード
country - 2 桁の大文字からなる ISO-3166 コード
例外:
NullPointerException - どちらかの引数が null の場合にスローされる

Locale

public Locale(String language)
言語コードからロケールを構築します。注: ISO 639 は確定した規格ではありません。ISO 639 で定義された一部の言語コード (たとえば、iw、ji、および in) は変更されています。このコンストラクタは、従来のコード (iw、ji、および in) と新しいコード (he、yi、および id) の両方を受け取りますが、Locale の他のすべての API では、古い方のコードだけが返されます。

パラメータ:
language - 2 桁の小文字からなる ISO-639 コード
例外:
NullPointerException - 引数が null の場合にスローされる
導入されたバージョン:
1.4
メソッドの詳細

getDefault

public static Locale getDefault()
Java 仮想マシンのこのインスタンスに対して、デフォルトロケールの現在の値を取得します。

Java 仮想マシンでは、ホスト環境に基づいて起動時にデフォルトロケールが設定されます。ロケールが明示的に指定されていない場合、ロケールに依存するメソッドの多くでデフォルトロケールが使用されます。setDefault メソッドを使用して変更できます。

戻り値:
Java 仮想マシンのこのインスタンスに対するデフォルトロケール

setDefault

public static void setDefault(Locale newLocale)
Java 仮想マシンのこのインスタンスに対するデフォルトロケールを設定します。これは、ホストロケールには影響しません。

セキュリティマネージャが存在する場合、デフォルトロケールが変更される前に、セキュリティマネージャの checkPermission メソッドがアクセス権 PropertyPermission("user.language", "write") を指定して呼び出されます。

Java 仮想マシンでは、ホスト環境に基づいて起動時にデフォルトロケールが設定されます。ロケールが明示的に指定されていない場合、ロケールに依存するメソッドの多くでデフォルトロケールが使用されます。

デフォルトロケールの変更はさまざまな機能の領域に影響する可能性があるため、このメソッドは、ユーザインタフェースなど、同じ Java 仮想マシンで実行されるロケール依存コードを、呼び出し側が再初期化できる場合にだけ使用します。

パラメータ:
newLocale - 新しいデフォルトのロケール
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの checkPermission メソッドがオペレーションを許可しないとき
NullPointerException - newLocale が null の場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), PropertyPermission

getAvailableLocales

public static Locale[] getAvailableLocales()
インストールされているすべてのロケールの配列を返します。返される配列には、Locale.US と等価な Locale インスタンスが少なくとも 1 つ含まれている必要があります。

戻り値:
インストールされているロケールの配列

getISOCountries

public static String[] getISOCountries()
ISO 3166 で定義されている 2 桁の国コードのリストを返します。Locale を作成するときに使用できます。


getISOLanguages

public static String[] getISOLanguages()
ISO 639 で定義されている 2 桁の言語コードのリストを返します。Locale を作成するときに使用できます。注: ISO 639 は確定した規格ではありません。一部の言語のコードは変更されています。この関数が返すリストには、コードが変更された言語の新しいコードと従来のコードの両方が含まれています。


getLanguage

public String getLanguage()
ロケールの言語コードを返します。空の文字列または小文字の ISO 639 コードのどちらかが返されます。

注: ISO 639 は確定した規格ではありません。一部の言語のコードは変更されています。ロケールのコンストラクタは、コードが変更された言語の新しいコードと従来のコードの両方を認識しますが、この関数は常に古い方のコードを返します。コードが変更された特定の言語を調べる場合は、


 if (locale.getLanguage().equals("he")
    ...
 
を使わないで、次のようにコーディングします。

 if (locale.getLanguage().equals(new Locale("he", "", "").getLanguage()) ...

関連項目:
getDisplayLanguage()

getCountry

public String getCountry()
ロケールの国/地域コードを返します。空の文字列または 2 桁の大文字の ISO 3166 コードのどちらかが返されます。

関連項目:
getDisplayCountry()

getVariant

public String getVariant()
ロケールのバリアントコードを返します。

関連項目:
getDisplayVariant()

toString

public final String toString()
ロケール全体のプログラム上の名前を取得します。言語、国、バリアントが下線で区切られます。言語は常に小文字で、国は常に大文字です。言語が欠落している場合は、文字列の先頭は下線になります。言語フィールドと国フィールドが欠落している場合は、バリアントフィールドが指定されていても、この関数は空の文字列を返します。バリアントだけを持つロケールは作成できません。バリアントは有効な言語コードまたは国コードとともに使用する必要があります。例: 「en」、「de_DE」、「_GB」、「en_US_WIN」、「de__POSIX」、および「fr__MAC」

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現
関連項目:
getDisplayName()

getISO3Language

public String getISO3Language()
                       throws MissingResourceException
ロケールの言語の 3 文字の省略形を返します。ロケールが言語を指定していない場合は、空の文字列が返されます。そうでない場合は、ISO 639-2/T の小文字の言語コードが返されます。ISO 639-2 言語コードは、オンラインの http://www.loc.gov/standards/iso639-2/englangn.html にあります。

例外:
MissingResourceException - ロケールに対する 3 文字の言語省略形がないと、MissingResourceException がスローされる

getISO3Country

public String getISO3Country()
                      throws MissingResourceException
ロケールの国の 3 文字の省略形を返します。ロケールが国を指定していない場合は、空の文字列が返されます。そうでない場合は、ISO 3166 の 3 文字の国コードが小文字で返されます。ISO 3166-2 国コードは、オンラインの http://www.davros.org/misc/iso3166.txt にあります。

例外:
MissingResourceException - ロケールに対する 3 文字の国省略形がないと、MissingResourceException がスローされる

getDisplayLanguage

public final String getDisplayLanguage()
ユーザへの表示に適した、ロケールの言語の名前を返します。可能な場合は、返される名前はデフォルトロケールに地域対応されます。たとえば、ロケールが fr_FR でデフォルトロケールが en_US の場合、getDisplayLanguage() は「French」を返し、ロケールが en_US でデフォルトロケールが fr_FR の場合、getDisplayLanguage() は「anglais」を返します。返される名前がデフォルトロケールに地域対応できない場合は (たとえば、クロアチア語に対する日本語名はない)、この関数は英語名を代用し、それも不可能な場合は ISO コードを使用します。ロケールが言語を指定していない場合は、この関数は空の文字列を返します。


getDisplayLanguage

public String getDisplayLanguage(Locale inLocale)
ユーザへの表示に適した、ロケールの言語の名前を返します。可能な場合は、返される名前は inLocale に従って地域対応されます。たとえば、ロケールが fr_FR で inLocale が en_US の場合、getDisplayLanguage() は「French」を返し、ロケールが en_US で inLocale が fr_FR の場合、getDisplayLanguage() は「anglais」を返します。返される名前が inLocale に従って地域対応できない場合は (たとえば、クロアチア語に対する日本語名はない)、この関数は、まずデフォルトロケールを代用し、次に英語名を代用し、それも不可能な場合は ISO コードを使用します。ロケールが言語を指定していない場合は、この関数は空の文字列を返します。


getDisplayCountry

public final String getDisplayCountry()
ユーザへの表示に適した、ロケールの国の名前を返します。可能な場合は、返される名前はデフォルトロケールに地域対応されます。たとえば、ロケールが fr_FR でデフォルトロケールが en_US の場合、getDisplayCountry() は「French」を返し、ロケールが en_US でデフォルトロケールが fr_FR の場合、getDisplayCountry() は「Etats-Unis」を返します。返される名前がデフォルトロケールに地域対応できない場合は (たとえば、クロアチアに対する日本語名はない)、この関数は英語名を代用し、それも不可能な場合は ISO コードを使用します。ロケールが国を指定していない場合は、この関数は空の文字列を返します。


getDisplayCountry

public String getDisplayCountry(Locale inLocale)
ユーザへの表示に適した、ロケールの国の名前を返します。可能な場合は、返される名前は inLocale に従って地域対応されます。たとえば、ロケールが fr_FR で inLocale が en_US の場合、getDisplayCountry() は「French」を返し、ロケールが en_US で inLocale が fr_FR の場合、getDisplayCountry() は「Etats-Unis」を返します。返される名前が inLocale に従って地域対応できない場合は (たとえば、クロアチアに対する日本語名はない)、この関数は、まずデフォルトロケールを代用し、次に英語名を代用し、それも不可能な場合は ISO コードを使用します。ロケールが国を指定していない場合は、この関数は空の文字列を返します。


getDisplayVariant

public final String getDisplayVariant()
ユーザへの表示に適した、ロケールのバリアントコードの名前を返します。可能な場合は、返される名前はデフォルトロケールに地域対応されます。ロケールがバリアントコードを指定していない場合は、この関数は空の文字列を返します。


getDisplayVariant

public String getDisplayVariant(Locale inLocale)
ユーザへの表示に適した、ロケールのバリアントコードの名前を返します。可能な場合は、返される名前は inLocale に従って地域対応されます。ロケールがバリアントコードを指定していない場合は、この関数は空の文字列を返します。


getDisplayName

public final String getDisplayName()
ユーザへの表示に適した、ロケールの名前を返します。返される名前は、getDisplayLanguage()、getDisplayCountry()、および getDisplayVariant() から返された値を 1 つの文字列にまとめたものです。表示名は、ロケールに指定されているフィールドによって、次のどれかの形式になります。

language (country, variant)

language (country)

language (variant)

country (variant)

language

country

variant

使用される形式は、ロケールに指定されているフィールドにより変化します。言語、国、およびバリアントの各フィールドがすべて空の場合、この関数は空の文字列を返します。


getDisplayName

public String getDisplayName(Locale inLocale)
ユーザへの表示に適した、ロケールの名前を返します。返される名前は、getDisplayLanguage()、getDisplayCountry()、および getDisplayVariant() から返された値を 1 つの文字列にまとめたものです。表示名は、ロケールに指定されているフィールドによって、次のどれかの形式になります。

language (country, variant)

language (country)

language (variant)

country (variant)

language

country

variant

使用される形式は、ロケールに指定されているフィールドにより変化します。言語、国、およびバリアントの各フィールドがすべて空の場合、この関数は空の文字列を返します。


clone

public Object clone()
Cloneable をオーバーライドします。

オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
関連項目:
Cloneable

hashCode

public int hashCode()
hashCode をオーバーライドします。ハッシュテーブルでは Locale がしばしば使用されるので、速度を上げるために値がキャッシュされます。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
この Locale がもう 1 つのオブジェクトと等しい場合に true を返します。2 つの Locale は、言語、国、およびバリアントが同じ場合に等しいと見なされます。そうでない場合は等しくありません。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
この Locale が指定されたオブジェクトと等しい場合は true
関連項目:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。