Java プラットフォーム 1.2

java.util
クラス Locale

java.lang.Object
  |
  +--java.util.Locale

public final class Locale
extends Object
implements Cloneable, Serializable

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

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

 Locale(String language, String country)
 Locale(String language, String country, String variant)
 
コンストラクタの最初の引数は、有効な ISO 言語コードです。これらのコードは、ISO-639 で定義される 2 桁の小文字です。コードの完全なリストは、
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt を始めいくつかの場所で入手できます。

コンストラクタの次の引数は、有効な ISO 国コードです。これらのコードは、ISO-3166 で定義される 2 桁の大文字です。コードの完全なリストは、
http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html を始めいくつかの場所で入手できます。

2 番目のコンストラクタには、3 番目の引数 variant が必要です。バリアントコードは、ベンダーやブラウザに固有のものです。たとえば、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 つのバージョンがあり、一方はデフォルトのロケールを使用し、他方は引数として指定されたロケールを使用します。

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

 NumberFormat.getInstance()
 NumberFormat.getCurrencyInstance()
 NumberFormat.getPercentInstance()
 
これらのメソッドには 2 つのバリアントがあります。明示的なロケールを持つものと、持たないものです。後者の場合はデフォルトロケールが使用されます。
 NumberFormat.getInstance(myLocale)
 NumberFormat.getCurrencyInstance(myLocale)
 NumberFormat.getPercentInstance(myLocale)
 
Locale は、どのオブジェクト (NumberFormat) を使用するかを指定するための機構です。ロケールは、オブジェクトを指定するための単なる機構であり、オブジェクト自体のコンテナではありません。

ロケールに依存する操作を行うクラスでは、その型を持つ使用可能なすべてのオブジェクトを得ることができます。これらのオブジェクトを言語や国、バリアントによって選別し、それらの表示名を使用してメニューをユーザに表示することができます。たとえば、ある言語に適したすべての照合オブジェクトを示すメニューを作成することができます。このようなクラスには、次に示す 3 つのクラスメソッドの実装が必要です。

 public static Locale[] getAvailableLocales()
 public static String getDisplayName(Locale objectLocale,
                                     Locale displayLocale)
 public static final String getDisplayName(Locale objectLocale)
     // getDisplayName will throw MissingResourceException if the locale
     // is not one of the available locales.
 

関連項目:
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, 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()
          現在のデフォルトロケールを得るための共通メソッドで、メニューやダイアログなどの表示に使用します。
 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)
          JVM 全体のデフォルトロケールを設定します。
 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 - ベンダーとブラウザに固有のコード。クラスの説明を参照

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 コード
メソッドの詳細

getDefault

public static Locale getDefault()
現在のデフォルトロケールを得るための共通メソッドで、メニューやダイアログなどの表示に使用します。一般に、アプレットやアプリケーションを初期化するときに一度設定したら、その後はリセットしません。(デフォルトロケールをリセットする場合は、通常 GUI をロードし直す必要があります。そうすれば、その変更がインタフェースに反映されます。)

さらに高度なプログラム (たとえば、スプレッドシートなど) では、フィールドによって別のロケールを使用することができます。
初期設定はホストシステムに合わされます。


setDefault

public static void setDefault(Locale newLocale)
JVM 全体のデフォルトロケールを設定します。通常は、アプリケーションの先頭で一度設定したら、リセットはしません。setDefault はホストロケールをリセットしません。

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

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

getAvailableLocales

public static Locale[] getAvailableLocales()
インストールされているすべてのロケールのリストを返します。

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 の小文字の言語コードが返されます。
例外:
MissingResourceException - ロケールに対する 3 文字の言語省略形がないと、MissingResourceException がスローされる

getISO3Country

public String getISO3Country()
                      throws MissingResourceException
ロケールの国の 3 文字の省略形を返します。ロケールが国を指定していない場合は、空の文字列が返されます。そうでない場合は、ISO 3166 の大文字 3 文字の国コードが返されます。
例外:
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

hashCode

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

equals

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

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.