モジュール java.base
パッケージ java.util

クラスLocale

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

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

Localeクラスは、RFC 4647「Matching of Language Tags」およびRFC 5646「Tags for Identifying Languages」で構成されるIETF BCP 47を実装し、ロケール・データ交換用のLDML (UTS#35「Unicode Locale Data Markup Language」) BCP 47互換拡張をサポートします。

Localeは、論理的には下記のフィールドで構成されます。

language
ISO 639 alpha-2またはalpha-3言語コード、または最大8文字の英字の登録済み言語サブタグ(将来の拡張のため)。 言語にalpha-2コードとalpha-3コードの両方がある場合は、alpha-2コードを使用する必要があります。 有効な言語コードの完全なリストはIANA言語サブタグ・レジストリで参照できます(「Type: language」を検索)。 言語フィールドの大文字と小文字は区別されませんが、Localeでは常に小文字に正規化されます。
整形式の言語の値は、[a-zA-Z]{2,8}という形式です。 extlangは除外されているので、これは完全なBCP47言語の生成ではないことに注意してください。 これらは最新の3文字の言語コードで置き換えられるため、必要ありません。
例: "en" (英語)、"ja" (日本語)、"kok" (コンカニ語)
script
ISO 15924 alpha-4スクリプト・コード。 有効なスクリプト・コードの完全なリストはIANA言語サブタグ・レジストリで参照できます(「Type: script」を検索)。 スクリプト・フィールドの大文字と小文字は区別されませんが、Localeでは常にタイトル・ケース(最初の文字は大文字、残りの文字は小文字)に正規化されます。
整形式のスクリプトの値は、[a-zA-Z]{4}という形式です。
例: "Latn" (ラテン)、"Cyrl" (キリル)
country (region)
ISO 3166 alpha-2の国コードまたはUN M.49 numeric-3の地域コード。 有効な国コードおよび地域コードの完全なリストはIANA言語サブタグ・レジストリで参照できます(「Type: region」を検索)。 国(地域)フィールドの大文字と小文字は区別されませんが、Localeでは常に大文字に正規化されます。
整形式の国/地域の値は、[a-zA-Z]{2}|[0-9]{3}という形式です。
例: "US" (米国)、"FR" (フランス)、"029" (カリブ)
variant
Localeのバリエーションを示すために使用される任意の値。 それぞれ独自のセマンティックスを示すバリアント値が2つ以上存在する場合、これらの値は重要度によって順序付けるべきで、もっとも重要なものから始めて、下線(「_」)で区切るようにします。 バリアント・フィールドの大文字と小文字は区別されません。
ノート: IETF BCP 47では、バリアント・サブタグに構文上の制限が規定されています。 また、BCP 47のサブタグは、言語、スクリプト、および地域のサブタグのどの組み合わせでも表されない、言語またはその方言を定義する追加のバリエーションを指定するためだけに使用されます。 有効なバリアント・コードの完全なリストはIANA言語サブタグ・レジストリで参照できます(「Type: variant」を検索)。

ただし、Localeのバリアント・フィールドは従来、言語のバリエーションだけでなく任意の種類のバリエーションに使用されてきました。 たとえば、Java SE Runtime Environmentで使用可能なサポートされているバリアントには、カレンダの種類や数値のスクリプトなど、別の文化的動作を示すものがあります。 BCP 47では、言語を識別するものではないこのような情報は、拡張サブタグまたは私用サブタグでサポートされます。

整形式のバリアント値はSUBTAG (('_'|'-') SUBTAG)*形式で、SUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}です。 (ノート:BCP 47は区切り文字としてハイフン(「-」)だけを使用するのに対し、この方が緩やかです。)
例: "polyton" (ギリシャ語Polytonic)、"POSIX"
extensions
言語の識別とは別の拡張を示す、単一文字キーから文字列値へのマップ。 Localeの拡張は、BCP 47の拡張サブタグおよび私用サブタグのセマンティックスと構文を実装します。 拡張の大文字と小文字は区別されませんが、Localeではすべての拡張キーと値が小文字に正規化されます。 拡張に空の値を指定することはできません。
整形式のキーは、[0-9a-zA-Z]のうちの単一文字です。 整形式の値は、SUBTAG ('-' SUBTAG)*という形式です。ここで、キー「x」についてはSUBTAG =[0-9a-zA-Z]{1,8}、ほかのキーについてはSUBTAG =[0-9a-zA-Z]{2,8}です(つまり、「x」では単一文字のサブタグが許可されます)。
例: key="u"/value="ca-japanese" (和暦)、key="x"/value="java-1-7"
ノート: BCP 47では、フィールド値がIANA言語サブタグ・レジストリに登録されている必要がありますが、Localeクラスでは検証機能は提供されていません。 Builderは、個々のフィールドが構文要件を満たしている(整形式である)かどうかだけを確認し、値自体の検証は行いません。 詳細は、Locale.Builderを参照してください。

Unicodeロケール/言語拡張

UTS#35「Unicode Locale Data Markup Language」では、ロケールに関連付けられているデフォルト動作をオーバーライドまたは変更するための、オプションの属性とキーワードが定義されています。 キーワードは、キーとタイプのペアで表されます。 たとえば、「nu-thai」は、数値のフォーマット(キー:「nu」)にタイのローカル数字(値:「thai」)を使用することを指定します。

キーワードは、拡張キー「u」(UNICODE_LOCALE_EXTENSION)を使用してBCP 47拡張値にマップされます。 上記の例"nu-thai"は、拡張子"u-nu-thai"になります。

したがって、LocaleオブジェクトにUnicodeロケール属性およびキーワードが含まれている場合、getExtension(UNICODE_LOCALE_EXTENSION)はこの情報を表すStringを返します("nu-thai"など)。 LocaleクラスではgetUnicodeLocaleAttributes()getUnicodeLocaleKeys()、およびgetUnicodeLocaleType(java.lang.String)も提供されているため、Unicodeロケール属性およびキーとタイプのペアに直接アクセスできます。 文字列で表現されたUnicodeロケール拡張では、属性がアルファベット順に一覧表示され、続いてキーとタイプがキーのアルファベット順に一覧表示されます(キーのタイプを構成するサブタグの順序は、タイプが定義されたときに固定されます)。

整形式のロケール・キーは、[0-9a-zA-Z]{2}という形式です。 整形式のロケール・タイプは、""|[0-9a-zA-Z]{3,8} ('-' [0-9a-zA-Z]{3,8})*という形式です(空、または3-8文字の英数字から成る一連のサブタグ)。 整形式のロケール属性は、[0-9a-zA-Z]{3,8}という形式です(ロケール・タイプ・サブタグと同じ形式の単一のサブタグ)。

Unicodeロケール拡張は、ロケールに依存するサービスのオプションの動作を指定します。 LDML仕様ではさまざまなキーと値が定義されていますが、Java Runtime Environmentにおける実際のロケール依存サービスの実装では、特定のUnicodeロケール属性やキーとタイプのペアがサポートされていない場合があります。

ロケールの作成

Localeオブジェクトを作成する方法はいくつかあります。

Builder

Locale.Builderを使用して、BCP 47構文に適合するLocaleオブジェクトを構築できます。

Constructors

Localeクラスには3つのコンストラクタがあります。

     Locale(String language)
     Locale(String language, String country)
     Locale(String language, String country, String variant)
 
これらのコンストラクタでは、言語、国、およびバリアントを指定してLocaleオブジェクトを作成できますが、スクリプトや拡張は指定できません。

Factory Methods

メソッドforLanguageTag(java.lang.String)は、整形式のBCP 47言語タグに対応するLocaleオブジェクトを作成します。

Locale Constants

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

     Locale.US
 

ロケール・マッチング

国際化されていて複数のロケールのためのローカライズされたリソースを提供するアプリケーションまたはシステムは、ユーザー固有の設定を満たす1つ以上のロケール(または言語タグ)を見つける必要がある場合があります。 このロケール・マッチングの説明では、言語タグとロケールが同じ意味で使用されます。

ユーザーが優先するロケールを言語タグ・セットにマッチングするために、RFC 4647 Matching of Language Tagsはフィルタリングおよびルックアップという2つのメカニズムを定義しています。 フィルタリングはマッチングするすべてのロケールを取得するために使用され、ルックアップはもっともよくマッチングするロケールを選択するために使用されます。 マッチングは大文字と小文字の区別なしで行われます。 これらのマッチング・メカニズムについては、この後のセクションで説明します。

ユーザーの設定は言語優先度リストと呼ばれ、言語範囲のリストとして表されます。 構文的には、基本と拡張という2つのタイプの言語範囲があります。 詳細は、Locale.LanguageRangeを参照してください。

Filtering

フィルタリング操作はすべてのマッチングする言語タグを返します。 RFC 4647では次のように定義されています: 「フィルタリングでは、各言語範囲は受け入れ可能なマッチングである最小固有言語タグ(つまり、サブタグがもっとも少ない言語タグ)を表します。 タグのマッチング・セット内のすべての言語タグは、言語範囲以上のサブタグを持ちます。 言語範囲内のワイルドカードでないすべてのサブタグは、マッチングするすべての言語タグに出現します。」

フィルタリングには次の2つのタイプがあります: 基本言語範囲用のフィルタリング(「基本フィルタリング」といいます)と拡張言語範囲用のフィルタリング(「拡張フィルタリング」といいます)です。 これらは、指定された言語優先度リストに含まれる言語範囲の種類によって異なる結果を返す場合があります。 Locale.FilteringModeは、フィルタリングを実行する方法を指定するパラメータです。

Lookup

ルックアップ操作はもっともマッチングする言語タグを返します。 RFC 4647では次のように定義されています: 「フィルタリングとは対照的に、各言語範囲は受け入れ可能なマッチであるもっとも固有なタグを表します。 最初に見つかったマッチング・タグは、ユーザーの優先度に従ってもっとも近いマッチと見なされ、返される項目です。」

たとえば、言語優先度リストが2つの言語範囲("zh-Hant-TW""en-US"、優先度順)から構成される場合は、ルックアップ・メソッドはもっともマッチングする言語タグを見つけるために次の言語タグを段階的に検索します。

    1. zh-Hant-TW
    2. zh-Hant
    3. zh
    4. en-US
    5. en
 
前述の言語範囲に完全にマッチする言語タグがある場合、その言語タグが返されます。

"*"は特殊な言語範囲で、ルックアップ時に無視されます。

サブタグ'*'が言語範囲に含まれるために複数の言語タグがマッチする場合は、言語タグのCollectionに対するIteratorによって返される最初のマッチする言語タグは、もっとも一致する言語タグとして処理されます。

ロケールの使用

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

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

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

互換性

既存の使用方法との互換性を保つために、LocaleのコンストラクタはJava Runtime Environment version 1.7より前の動作を維持しています。 toStringメソッドについても概して同じことが言えます。 したがって、Localeオブジェクトは以前と同様に使用できます。 特に、toStringの出力を解析して言語、国、およびバリアント・フィールドを取得しているクライアントは、引き続きそうすることができます(ただし、そのようにしないことが強く推奨されます)。ただし、スクリプトまたは拡張が存在する場合は、バリアント・フィールドに追加の情報が含まれることになります。

また、Localeのコンストラクタでは規定されていない構文制限がBCP 47では規定されています。 これは、ロケールとBCP 47言語タグの間の変換で、情報が失われる場合もあることを意味します。 したがって、ロケールの言語、国、またはバリアントがBCP 47に適合していない場合、そのようなロケールの状態をtoLanguageTagで表すことはできません。

このような問題があるため、クライアントは非準拠ロケールを構築することから移行して、代わりにforLanguageTagおよびLocale.Builder APIを使用することをお薦めします。 完全なロケールを表す文字列が必要な場合、クライアントはこの目的にはいつでもtoLanguageTagを利用できます。

Special cases

互換性を維持するため、2つの非準拠ロケールが特例として扱われます。 これらはja_JP_JPおよびth_TH_THです。 これらは、バリアントが短すぎるため、BCP 47では整形式ではありません。 BCP 47への移行を容易にするため、これらは構築時に特別に扱われます。 コンストラクタはこれら2つの場合に限り例外を生成し、ほかの値ではJava 7より前とまったく同様に動作します。

Javaでは、日本で使用されている日本語とともに日本の皇暦を表すためにja_JP_JPを使用してきました。 これは現在ではUnicodeロケール拡張を使用して、Unicodeロケール・キーca (カレンダ)とタイプjapaneseを指定することによって表されます。 Localeコンストラクタが引数"ja", "JP", "JP"で呼び出されると、拡張「u-ca-japanese」が自動的に追加されます。

Javaでは、タイで使用されているタイ語とともにタイ数字を表すためにth_TH_THを使用してきました。 これも現在ではUnicodeロケール拡張を使用して、Unicodeロケール・キーnu (数字)と値thaiを指定することによって表されます。 Localeコンストラクタが引数"th", "TH", "TH"で呼び出されると、拡張「u-nu-thai」が自動的に追加されます。

Serialization

直列化の際、拡張も含めすべてのフィールドがwriteObjectによって出力ストリームに書き込まれます。

直列化復元の際、th_TH_THおよびja_JP_JPの2つの場合のみ、「特例」で説明されている拡張がreadResolveによって追加されます。

Legacy language codes

Localeのコンストラクタは常に、3つの言語コードを廃止された以前の形式に変換してきました。heiwにマップされ、yijiにマップされ、idinにマップされます。 下位互換性を保つために、これは引き続き行われます。

1.7で追加されたAPIは、古い言語コードと新しい言語コードをマップして、Localeの内部では古いコードを維持し(そのためgetLanguagetoStringには古いコードが反映される)、BCP 47言語タグAPIでは新しいコードを使用します(そのためtoLanguageTagには新しいコードが反映される)。 これにより、ロケールの構築に使用されるコードやAPIにかかわらず、ロケール間の等価関係が維持されます。 Javaのデフォルト・リソース・バンドルのルックアップ・メカニズムはこのマッピングも実装するため、どちらかの命名規則でもリソースの名前を指定できます。ResourceBundle.Controlを参照してください。

Three-letter language/country(region) codes

Localeのコンストラクタでは、言語および国のパラメータの長さは2文字であると指定されてきましたが、実際には任意の長さが受け入れられていました。 この仕様が緩和され、2文字から8文字までの言語コードと、2文字から3文字までの国(地域)コードが許可されるようになりました。特に、IANA言語サブタグ・レジストリに指定されている3文字の言語コードと3桁の地域コードが許可されます。 互換性のため、実装では引き続き長さの制約は課されません。

導入されたバージョン:
1.1
関連項目:
Locale.Builder, ResourceBundle, Format, NumberFormat, Collator, 直列化された形式
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型 クラス 説明
    static class  Locale.Builder
    Builderは、setterによって構成される値からLocaleのインスタンスを構築するために使用されます。
    static class  Locale.Category
    ロケール・カテゴリの列挙型です。
    static class  Locale.FilteringMode
    この列挙型は、ロケール・マッチング用のフィルタリング・モードを選択するための定数を提供します。
    static class  Locale.IsoCountryCode
    ISO 3166で定義されている型を指定する列挙型。
    static class  Locale.LanguageRange
    このクラスは、RFC 4647の言語タグの照合に定義されている言語範囲を表します。
  • フィールドのサマリー

    フィールド
    修飾子と型 フィールド 説明
    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 char PRIVATE_USE_EXTENSION
    私用拡張用のキー(「x」)です。
    static Locale ROOT
    ルート・ロケールに使用される定数です。
    static Locale SIMPLIFIED_CHINESE
    言語に使用する定数です。
    static Locale TAIWAN
    国に使用する定数です。
    static Locale TRADITIONAL_CHINESE
    言語に使用する定数です。
    static Locale UK
    国に使用する定数です。
    static char UNICODE_LOCALE_EXTENSION
    Unicodeロケール拡張用のキーです(「u」)。
    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がもう一方のオブジェクトと等しい場合にtrueを返します。
    static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
    RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。
    static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)
    RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。
    static List<String> filterTags​(List<Locale.LanguageRange> priorityList, Collection<String> tags)
    RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。
    static List<String> filterTags​(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)
    RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。
    static Locale forLanguageTag​(String languageTag)
    指定されたIETF BCP 47言語タグ文字列を表すロケールを返します。
    static Locale[] getAvailableLocales()
    インストールされているすべてのロケールの配列を返します。
    String getCountry()
    このロケールの国/地域コードを返します。これは、空の文字列、2文字の大文字のISO 3166コード、または3桁のUN M.49コードのいずれかになります。
    static Locale getDefault()
    Java仮想マシンのこのインスタンスについて、デフォルト・ロケールの現在の値を取得します。
    static Locale getDefault​(Locale.Category category)
    Java仮想マシンのこのインスタンスについて、指定されたカテゴリのデフォルト・ロケールの現在の値を取得します。
    String getDisplayCountry()
    ユーザーへの表示に適した、ロケールの国の名前を返します。
    String getDisplayCountry​(Locale inLocale)
    ユーザーへの表示に適した、ロケールの国の名前を返します。
    String getDisplayLanguage()
    ユーザーへの表示に適した、ロケールの言語の名前を返します。
    String getDisplayLanguage​(Locale inLocale)
    ユーザーへの表示に適した、ロケールの言語の名前を返します。
    String getDisplayName()
    ユーザーへの表示に適した、ロケールの名前を返します。
    String getDisplayName​(Locale inLocale)
    ユーザーへの表示に適した、ロケールの名前を返します。
    String getDisplayScript()
    ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。
    String getDisplayScript​(Locale inLocale)
    ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。
    String getDisplayVariant()
    ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。
    String getDisplayVariant​(Locale inLocale)
    ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。
    String getExtension​(char key)
    指定されたキーに関連付けられた拡張(つまり私用)値を返します。キーに関連付けられた拡張がない場合はnullを返します。
    Set<Character> getExtensionKeys()
    このロケールに関連付けられた拡張キーのセットを返します。拡張がない場合は空のセットを返します。
    String getISO3Country()
    ロケールの国の3文字の省略形を返します。
    String getISO3Language()
    このロケールの言語の3文字の省略形を返します。
    static String[] getISOCountries()
    ISO 3166で定義されている2桁の国コードのリストを返します。
    static Set<String> getISOCountries​(Locale.IsoCountryCode type)
    指定された型のISO3166国コードのSetを返します。
    static String[] getISOLanguages()
    ISO 639で定義されている2桁の言語コードのリストを返します。
    String getLanguage()
    このLocaleの言語コードを返します。
    String getScript()
    このロケールのスクリプトを返します。これは、空の文字列または4文字のISO 15924スクリプト・コードのどちらかになります。
    Set<String> getUnicodeLocaleAttributes()
    このロケールに関連付けられたUnicodeロケール属性のセットを返します。属性がない場合は空のセットを返します。
    Set<String> getUnicodeLocaleKeys()
    このロケールで定義されたUnicodeロケール・キーのセットを返します。このロケールにない場合は空のセットを返します。
    String getUnicodeLocaleType​(String key)
    このロケールの指定されたUnicodeロケール・キーに関連付けられたUnicodeロケール・タイプを返します。
    String getVariant()
    このロケールのバリアント・コードを返します。
    boolean hasExtensions()
    このLocale拡張を持つ場合、trueを返します。
    int hashCode()
    hashCodeをオーバーライドします。
    static Locale lookup​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
    RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグのLocaleインスタンスを返します。
    static String lookupTag​(List<Locale.LanguageRange> priorityList, Collection<String> tags)
    RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグを返します。
    static void setDefault​(Locale newLocale)
    Java仮想マシンのこのインスタンスのデフォルト・ロケールを設定します。
    static void setDefault​(Locale.Category category, Locale newLocale)
    Java仮想マシンのこのインスタンスについて、指定されたカテゴリ用のデフォルト・ロケールを設定します。
    Locale stripExtensions()
    このLocaleのコピーを、拡張を除いて返します。
    String toLanguageTag()
    このロケールを表す、整形式のIETF BCP 47言語タグを返します。
    String toString()
    このLocaleオブジェクトの文字列表現を返します。以下のように、言語、国、バリアント、スクリプト、および拡張子で構成されます: language + "_" + country + "_" + (variant + "_#" | "#") + script + "_" + extensions言語は常に小文字で、国は常に大文字、スクリプトは常にタイトル・ケース、拡張子は常に小文字です。

    クラス 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
      国に使用する定数です。
    • 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
      国に使用する定数です。
    • ROOT

      public static final Locale ROOT
      ルート・ロケールに使用される定数です。 ルート・ロケールは、言語、国、およびバリアントが空(「」)の文字列であるロケールです。 これはすべてのロケールの基底ロケールとみなされ、ロケールに依存するオペレーションで言語/国に中立のロケールとして使用されます。
      導入されたバージョン:
      1.6
    • CHINA

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

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

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

      public static final char PRIVATE_USE_EXTENSION
      私用拡張用のキー(「x」)です。
      導入されたバージョン:
      1.7
      関連項目:
      getExtension(char), Locale.Builder.setExtension(char, String), 定数フィールド値
    • UNICODE_LOCALE_EXTENSION

      public static final char UNICODE_LOCALE_EXTENSION
      Unicodeロケール拡張用のキーです(「u」)。
      導入されたバージョン:
      1.7
      関連項目:
      getExtension(char), Locale.Builder.setExtension(char, String), 定数フィールド値
  • コンストラクタの詳細

    • Locale

      public Locale​(String language, String country, String variant)
      言語、国、およびバリアントからロケールを構築します。 このコンストラクタは、言語の値を小文字に正規化し、国の値を大文字に正規化します。

      ノート:

      • ISO 639は確定した規格ではありません。ISO 639で定義された一部の言語コード(たとえば、「iw」、「ji」、および「in」)は変更されています。 このコンストラクタは、従来のコード(「iw」、「ji」、および「in」)と新しいコード(「he」、「yi」、および「id」)の両方を受け取りますが、LocaleのほかのすべてのAPIでは、古い方のコードだけが返されます。
      • 下位互換性の理由で、このコンストラクタは入力に対して構文チェックは行いません。
      • ("ja", "JP", "JP")と("th", "TH", "TH")の2つの場合は特別に処理されます。詳細は、「特例」を参照してください。

      パラメータ:
      language - ISO 639 alpha-2またはalpha-3言語コード、または最高8文字の言語のサブタグ。 言語の有効な値については、Localeクラスの説明を参照。
      country - ISO 3166 alpha-2の国コードまたはUN M.49 numeric-3の地域コード。 国の有効な値については、Localeクラスの説明を参照。
      variant - Localeのバリエーションを示すために使用される任意の値。 詳細は、Localeクラスの説明を参照。
      例外:
      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 - ISO 639 alpha-2またはalpha-3言語コード、または最高8文字の言語のサブタグ。 言語の有効な値については、Localeクラスの説明を参照。
      country - ISO 3166 alpha-2の国コードまたはUN M.49 numeric-3の地域コード。 国の有効な値については、Localeクラスの説明を参照。
      例外:
      NullPointerException - どちらかの引数がnullの場合にスローされる。
    • Locale

      public Locale​(String language)
      言語コードからロケールを構築します。 このコンストラクタは、言語の値を小文字に正規化します。

      ノート:

      • ISO 639は確定した規格ではありません。ISO 639で定義された一部の言語コード(たとえば、「iw」、「ji」、および「in」)は変更されています。 このコンストラクタは、従来のコード(「iw」、「ji」、および「in」)と新しいコード(「he」、「yi」、および「id」)の両方を受け取りますが、LocaleのほかのすべてのAPIでは、古い方のコードだけが返されます。
      • 下位互換性の理由で、このコンストラクタは入力に対して構文チェックは行いません。

      パラメータ:
      language - ISO 639 alpha-2またはalpha-3言語コード、または最高8文字の言語のサブタグ。 言語の有効な値については、Localeクラスの説明を参照。
      例外:
      NullPointerException - 引数がnullの場合にスローされる。
      導入されたバージョン:
      1.4
  • メソッドの詳細

    • getDefault

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

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

      戻り値:
      Java Virtual Machineのこのインスタンスのデフォルト・ロケール
    • getDefault

      public static Locale getDefault​(Locale.Category category)
      Java仮想マシンのこのインスタンスについて、指定されたカテゴリのデフォルト・ロケールの現在の値を取得します。

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

      パラメータ:
      category - デフォルト・ロケールを取得するために指定されたカテゴリ
      戻り値:
      Java仮想マシンのこのインスタンスの、指定されたカテゴリ用のデフォルト・ロケール
      例外:
      NullPointerException - カテゴリがnullの場合
      導入されたバージョン:
      1.7
      関連項目:
      setDefault(Locale.Category, Locale)
    • 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
    • setDefault

      public static void setDefault​(Locale.Category category, Locale newLocale)
      Java仮想マシンのこのインスタンスについて、指定されたカテゴリ用のデフォルト・ロケールを設定します。 これは、ホスト・ロケールには影響しません。

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

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

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

      パラメータ:
      category - デフォルト・ロケールを設定するために指定されたカテゴリ
      newLocale - 新しいデフォルトのロケール
      例外:
      SecurityException - セキュリティ・マネージャが存在し、そのcheckPermissionメソッドでこの操作が許可されていない場合。
      NullPointerException - categoryおよび/またはnewLocaleがnullの場合
      導入されたバージョン:
      1.7
      関連項目:
      SecurityManager.checkPermission(java.security.Permission), PropertyPermission, getDefault(Locale.Category)
    • getAvailableLocales

      public static Locale[] getAvailableLocales()
      インストールされているすべてのロケールの配列を返します。 返される配列は、Java実行環境およびインストールされているLocaleServiceProvider実装によってサポートされているロケールの和集合を表します。 これには、Locale.USと等価なLocaleインスタンスが少なくとも1つ含まれている必要があります。
      戻り値:
      インストールされているロケールの配列
    • getISOCountries

      public static String[] getISOCountries()
      ISO 3166で定義されている2桁の国コードのリストを返します。 Localeを作成するときに使用できます。 このメソッドは、type Locale.IsoCountryCode.PART1_ALPHA2を使用したgetISOCountries(Locale.IsoCountryCode type)と同等です。

      ノート: Localeクラスは、3桁の数字のUN M.49地域コードなど、国(地域)用のほかのコードもサポートしています。 したがって、このメソッドで返されるリストには、Localeの作成に使用できる有効なコードがすべて含まれているわけではありません。

      このメソッドは古い2文字の国コードを返さないことに注意してください。 これらの廃止されたコードの国コードを指定するISO3166-3コードは、type Locale.IsoCountryCode.PART3を使用してgetISOCountries(Locale.IsoCountryCode type)から取得できます。

      戻り値:
      ISO 3166の2文字国コードの配列。
    • getISOCountries

      public static Set<String> getISOCountries​(Locale.IsoCountryCode type)
      指定された型のISO3166国コードのSetを返します。
      パラメータ:
      type - Locale.IsoCountryCode指定されたISOコード型。
      戻り値:
      指定された型のISO国コードのSet
      例外:
      NullPointerException - typeがnullの場合
      導入されたバージョン:
      9
      関連項目:
      Locale.IsoCountryCode
    • getISOLanguages

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

      ノート:

      • ISO 639は安定した規格ではありません。一部の言語のコードは変更されています。 この関数が返すリストには、コードが変更された言語の新しいコードと従来のコードの両方が含まれています。
      • Localeクラスは、8文字までの長さの言語コードもサポートしています。 したがって、このメソッドで返されるリストには、Localeの作成に使用できる有効なコードがすべて含まれているわけではありません。

      戻り値:
      ISO 639の2文字の言語コードの配列。
    • getLanguage

      public String getLanguage()
      このLocaleの言語コードを返します。

      ノート: ISO 639は安定した規格ではありません。一部の言語のコードは変更されています。 Localeのコンストラクタは、コードが変更された言語の新しいコードと従来のコードの両方を認識しますが、この関数は常に古い方のコードを返します。 コードが変更された言語かどうかを調べる場合は、次のようにしないでください

       if (locale.getLanguage().equals("he")) // BAD!
          ...
       
      代わりに、次のようにしてください
       if (locale.getLanguage().equals(new Locale("he").getLanguage()))
          ...
       

      戻り値:
      言語コード。定義されたものがない場合は空の文字列。
      関連項目:
      getDisplayLanguage()
    • getScript

      public String getScript()
      このロケールのスクリプトを返します。これは、空の文字列または4文字のISO 15924スクリプト・コードのどちらかになります。 最初の文字は大文字、残りの文字は小文字で、たとえば「Latn」や「Cyrl」のようになります。
      戻り値:
      スクリプト・コード。定義されたものがない場合は空の文字列。
      導入されたバージョン:
      1.7
      関連項目:
      getDisplayScript()
    • getCountry

      public String getCountry()
      このロケールの国/地域コードを返します。これは、空の文字列、2文字の大文字のISO 3166コード、または3桁のUN M.49コードのいずれかになります。
      戻り値:
      国/地域コード。定義されたものがない場合は空の文字列。
      関連項目:
      getDisplayCountry()
    • getVariant

      public String getVariant()
      このロケールのバリアント・コードを返します。
      戻り値:
      バリアント・コード。定義されたものがない場合は空の文字列。
      関連項目:
      getDisplayVariant()
    • hasExtensions

      public boolean hasExtensions()
      このLocale拡張を持つ場合、trueを返します。
      戻り値:
      このLocaleが拡張を持つ場合はtrue
      導入されたバージョン:
      1.8
    • stripExtensions

      public Locale stripExtensions()
      このLocaleのコピーを、拡張を除いて返します。 このLocaleが拡張を持たない場合、このLocaleが返されます。
      戻り値:
      このLocaleのコピー(拡張なし)、これが拡張を持たない場合はthis
      導入されたバージョン:
      1.8
    • getExtension

      public String getExtension​(char key)
      指定されたキーに関連付けられた拡張(つまり私用)値を返します。キーに関連付けられた拡張がない場合はnullを返します。 整形式となるためには、キーは[0-9A-Za-z]の1つである必要があります。 キーの大文字と小文字は区別されないため、たとえば「z」と「Z」は同じ拡張を表します。
      パラメータ:
      key - 拡張キー
      戻り値:
      拡張。指定されたキーの拡張がこのロケールで定義されていない場合はnull。
      例外:
      IllegalArgumentException - キーが整形式でない場合
      導入されたバージョン:
      1.7
      関連項目:
      PRIVATE_USE_EXTENSION, UNICODE_LOCALE_EXTENSION
    • getExtensionKeys

      public Set<Character> getExtensionKeys()
      このロケールに関連付けられた拡張キーのセットを返します。拡張がない場合は空のセットを返します。 返されたセットは変更できません。 キーはすべて小文字になります。
      戻り値:
      拡張キーのセット。このロケールに拡張がない場合は空のセット。
      導入されたバージョン:
      1.7
    • getUnicodeLocaleAttributes

      public Set<String> getUnicodeLocaleAttributes()
      このロケールに関連付けられたUnicodeロケール属性のセットを返します。属性がない場合は空のセットを返します。 返されたセットは変更できません。
      戻り値:
      属性のセット。
      導入されたバージョン:
      1.7
    • getUnicodeLocaleType

      public String getUnicodeLocaleType​(String key)
      このロケールの指定されたUnicodeロケール・キーに関連付けられたUnicodeロケール・タイプを返します。 キーのタイプが定義されていない場合は、空の文字列を返します。 キーが定義されていない場合はnullを返します。 キーの大文字と小文字は区別されません。 キーは2つの英数字([0-9a-zA-Z])である必要があり、そうでない場合はIllegalArgumentExceptionがスローされます。
      パラメータ:
      key - Unicodeロケール・キー
      戻り値:
      キーに関連付けられたUnicodeロケール・タイプ。キーがこのロケールで定義されていない場合はnull。
      例外:
      IllegalArgumentException - キーが整形式でない場合
      NullPointerException - keyがnullである場合
      導入されたバージョン:
      1.7
    • getUnicodeLocaleKeys

      public Set<String> getUnicodeLocaleKeys()
      このロケールで定義されたUnicodeロケール・キーのセットを返します。このロケールにない場合は空のセットを返します。 返されるセットは不変です。 キーはすべて小文字になります。
      戻り値:
      Unicodeロケール・キーのセット。このロケールにUnicodeロケール・キーワードがない場合は空のセット。
      導入されたバージョン:
      1.7
    • toString

      public final String toString()
      このLocaleオブジェクトの文字列表現(次のように言語、国、バリアント、スクリプト、および拡張から成る)を返します。
      language + "_" + country + "_" + (variant + "_#" | "#") + script + "_" + extension
      言語は常に小文字、国は常に大文字、スクリプトは常にタイトル・ケース、拡張は常に小文字になります。 拡張サブタグおよび私用サブタグは、toLanguageTag()で説明されている正規の順序になります。

      ロケールにスクリプトも拡張も含まれていない場合、結果はJava 6以前と同じです。

      言語フィールドと国フィールドの両方が欠落している場合は、バリアント、スクリプト、または拡張フィールドが含まれていても、この関数は空の文字列を返します。バリアントだけを持つロケールは作成できません。バリアントは整形式の言語コードまたは国コードとともに使用する必要があります。

      スクリプトまたは拡張が含まれている場合で、バリアントが欠落しているときは、「#」の前に下線は付加されません。

      この動作は、デバッグをサポートするためと、言語、国、およびバリアント・フィールドだけが想定されていた以前のtoStringの使用方法との互換性を保つために設計されています。 相互交換のためにLocaleをStringで表現するには、toLanguageTag()を使用してください。

      • en
      • de_DE
      • _GB
      • en_US_WIN
      • de__POSIX
      • zh_CN_#Hans
      • zh_TW_#Hant_x-java
      • th_TH_TH_#u-nu-thai

      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      デバッグ用のLocaleの文字列表現。
      関連項目:
      getDisplayName(), toLanguageTag()
    • toLanguageTag

      public String toLanguageTag()
      このロケールを表す、整形式のIETF BCP 47言語タグを返します。

      このLocaleに、IETF BCP 47言語タグの構文要件を満たさない言語、国、またはバリアントが含まれている場合、このメソッドはこれらのフィールドを次のように処理します。

      言語: 言語が空の場合または整形式でない場合(「a」や「e2」など)、言語は「und」(Undetermined)として出力されます。

      国: 国が整形式でない場合(「12」や「USA」など)、国は省略されます。

      バリアント: バリアントが整形式である場合、各サブセグメント(「-」または「_」で区切られている)がサブタグとして出力されます。 そうでない場合は、次のようになります。

      • すべてのサブセグメントが[0-9a-zA-Z]{1,8}に一致する場合(「WIN」や「Oracle_JDK_Standard_Edition」など)、整形式でない最初のサブセグメントおよびそれに続くすべてのサブセグメントが、私用サブタグに追加されます。 追加される最初のサブタグは「lvariant」で、そのあとにサブセグメントが順に、ハイフンで区切られて追加されます。 たとえば、「x-lvariant-WIN」、「Oracle-x-lvariant-JDK-Standard-Edition」となります。
      • いずれかのサブセグメントが[0-9a-zA-Z]{1,8}に一致しない場合、バリアントは切り詰められ、問題のあるサブセグメントおよびそれに続くすべてのサブセグメントが省略されます。 残ったものが空でない場合は、それが上記のように私用サブタグとして出力されます(残ったものが整形式となった場合でも)。 たとえば、「Solaris_isjustthecoolestthing」は、「solaris」ではなく「x-lvariant-Solaris」として出力されます。

      特殊変換: Javaでは、非推奨のISO言語コードを含め、いくつかの古いロケール表現が互換性のためにサポートされています。 このメソッドは、次の変換を実行します。

      • 非推奨のISO言語コード「iw」、「ji」、および「in」は、それぞれ「he」、「yi」、および「id」に変換されます。
      • ロケールの言語が「no」、国が「NO」、およびバリアントが「NY」の場合(ノルウェー語ニーノシク(ノルウェー)を表す)、ロケールは言語タグ「nn-NO」に変換されます。

      ノート: このメソッドで作成される言語タグは整形式(IETF BCP 47仕様で定義されている構文要件を満たす)ですが、必ずしも有効なBCP 47言語タグではありません。 次に例を示します。

         new Locale("xx", "YY").toLanguageTag();
      これは「xx-YY」を返しますが、言語サブタグ「xx」と地域サブタグ「YY」はIANA言語サブタグ・レジストリに登録されていないため、無効です。

      戻り値:
      ロケールを表すBCP47言語タグ
      導入されたバージョン:
      1.7
      関連項目:
      forLanguageTag(String)
    • forLanguageTag

      public static Locale forLanguageTag​(String languageTag)
      指定されたIETF BCP 47言語タグ文字列を表すロケールを返します。

      指定された言語タグに整形式でないサブタグが含まれている場合、整形式でない最初のサブタグおよびそれに続くすべてのサブタグが無視されます。 このような場合に例外をスローするLocale.Builder.setLanguageTag(java.lang.String)と比較してください。

      次の変換が実行されます。

      • 言語コード「und」は言語""にマップされます。
      • 言語コード「he」、「yi」、および「id」は、それぞれ「iw」、「ji」、および「in」にマップされます。 (これは、Localeのコンストラクタで実行されるものと同じ正規化です。)
      • 私用サブタグに接頭辞「lvariant」が付加された部分がある場合、その部分は削除され、結果のロケールのバリアント・フィールドに付加されます(大文字小文字の正規化なし)。 それによって空になる場合、私用サブタグは破棄されます。
             Locale loc;
             loc = Locale.forLanguageTag("en-US-x-lvariant-POSIX");
             loc.getVariant(); // returns "POSIX"
             loc.getExtension('x'); // returns null
        
             loc = Locale.forLanguageTag("de-POSIX-x-URP-lvariant-Abc-Def");
             loc.getVariant(); // returns "POSIX_Abc_Def"
             loc.getExtension('x'); // returns "urp"
         
      • languageTag引数に拡張言語サブタグが含まれている場合、最初の拡張言語サブタグが言語として使用され、プライマリ言語サブタグとほかの拡張言語サブタグは無視されます。
             Locale.forLanguageTag("ar-aao").getLanguage(); // returns "aao"
             Locale.forLanguageTag("en-abc-def-us").toString(); // returns "abc_US"
         
      • バリアント・タグは変更されませんが、それ以外には大文字小文字の正規化が行われます。 言語は小文字、スクリプトはタイトル・ケース、国は大文字、拡張は小文字に正規化されます。
      • 処理後のロケールが拡張を含まず、ja_JP_JPまたはth_TH_THに正確に一致する場合は、コンストラクタが呼び出されたかのように適切な拡張が追加されます。
            Locale.forLanguageTag("ja-JP-x-lvariant-JP").toLanguageTag();
            // returns "ja-JP-u-ca-japanese-x-lvariant-JP"
            Locale.forLanguageTag("th-TH-x-lvariant-TH").toLanguageTag();
            // returns "th-TH-u-nu-thai-x-lvariant-TH"
         

      これはBCP47の「言語タグ」プロダクションを実装しているため、適用外の言語タグ(標準および不規則)と私用言語タグをサポートします。 スタンドアロンの私用タグは、空の言語と拡張「x-任意」で表され、適用外のタグは、正規の代替タグがあればそれに変換されます。

      正規代替を持つ適用外タグは次のとおりです。

      正規代替を持つ適用外タグ
      適用外のタグ最新の代替
      art-lojbanjbo
      i-amiami
      i-bnnbnn
      i-hakhak
      i-klingontlh
      i-luxlb
      i-navajonv
      i-pwnpwn
      i-taotao
      i-taytay
      i-tsutsu
      no-boknb
      no-nynnn
      sgn-BE-FRsfb
      sgn-BE-NLvgt
      sgn-CH-DEsgg
      zh-guoyucmn
      zh-hakkahak
      zh-min-nannan
      zh-xianghsn

      最新代替を持たない適用外タグは次のように変換されます。

      最新代替を持たない適用外タグ
      適用外のタグ変換後
      cel-gaulishxtg-x-cel-gaulish
      en-GB-oeden-GB-x-oed
      i-defaulten-x-i-default
      i-enochianund-x-i-enochian
      i-mingosee-x-i-mingo
      zh-minnan-x-zh-min

      すべての適用外タグのリストについては、IANA Language Subtag Registryを参照してください(「Type: grandfathered」を検索)。

      ノート:toLanguageTagforLanguageTagで元に戻る保証はありません。

      パラメータ:
      languageTag - 言語タグ
      戻り値:
      言語タグをもっとも適切に表すロケール。
      例外:
      NullPointerException - languageTagnullの場合
      導入されたバージョン:
      1.7
      関連項目:
      toLanguageTag()Locale.Builder.setLanguageTag(String)
    • getISO3Language

      public String getISO3Language() throws MissingResourceException
      このロケールの言語の3文字の省略形を返します。 言語がISO 639-1の2文字コードに一致する場合、3つの小文字から成る対応するISO 639-2/Tコードが返されます。 ISO 639-2言語コードはオンラインで見つかります。「Codes for the Representation of Names of Languages Part 2: Alpha-3 Code」を参照してください。 ロケールが3文字で言語を指定している場合は、言語がそのまま返されます。 ロケールが言語を指定していない場合は、空の文字列が返されます。
      戻り値:
      このロケールの言語の3文字の省略形。
      例外:
      MissingResourceException - このロケールに3文字の言語省略形がない場合、MissingResourceExceptionがスローされる。
    • getISO3Country

      public String getISO3Country() throws MissingResourceException
      ロケールの国の3文字の省略形を返します。 国がISO 3166-1 alpha-2コードに一致する場合、大文字から成る対応するISO 3166-1 alpha-3コードが返されます。 ロケールが国を指定していない場合は、空の文字列が返されます。

      ISO 3166-1コードはオンラインで参照できます。

      戻り値:
      このロケールの国の3文字の省略形。
      例外:
      MissingResourceException - このロケールに3文字の国省略形がない場合、MissingResourceExceptionがスローされる。
    • getDisplayLanguage

      public final String getDisplayLanguage()
      ユーザーへの表示に適した、ロケールの言語の名前を返します。 可能な場合は、返される名前はデフォルトDISPLAYロケール用にローカライズされます。 たとえば、ロケールがfr_FRでデフォルトDISPLAYロケールがen_USの場合、getDisplayLanguage()はFrenchを返します。ロケールがen_USでデフォルトDISPLAYロケールがfr_FRの場合、getDisplayLanguage()はanglaisを返します。 返される名前がデフォルトDISPLAYロケール用にローカライズできない場合(たとえば、クロアチア語用の日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが言語を指定していない場合は、この関数は空の文字列を返します。
      戻り値:
      表示言語の名前。
    • getDisplayLanguage

      public String getDisplayLanguage​(Locale inLocale)
      ユーザーへの表示に適した、ロケールの言語の名前を返します。 可能な場合、返される名前はinLocaleに従ってローカライズされます。 たとえば、ロケールがfr_FRでinLocaleがen_USの場合、getDisplayLanguage()は「French」を返し、ロケールがen_USでinLocaleがfr_FRの場合、getDisplayLanguage()は「anglais」を返します。 返される名前がinLocaleに従ってローカライズできない場合(たとえば、クロアチア語に対する日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが言語を指定していない場合は、この関数は空の文字列を返します。
      パラメータ:
      inLocale - 取得する表示言語のロケール。
      戻り値:
      指定されたロケールに適した表示言語の名前。
      例外:
      NullPointerException - inLocalenullである場合
    • getDisplayScript

      public String getDisplayScript()
      ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。 可能な場合は、名前はデフォルトDISPLAYロケール用にローカライズされます。 このロケールがスクリプト・コードを指定していない場合は、空の文字列を返します。
      戻り値:
      現在のデフォルトDISPLAYロケール用のスクリプト・コードの表示名
      導入されたバージョン:
      1.7
    • getDisplayScript

      public String getDisplayScript​(Locale inLocale)
      ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。 可能な場合は、名前は指定されたロケールにローカライズされます。 このロケールがスクリプト・コードを指定していない場合は、空の文字列を返します。
      パラメータ:
      inLocale - 取得する表示スクリプトのロケール。
      戻り値:
      現在のデフォルトDISPLAYロケール用のスクリプト・コードの表示名
      例外:
      NullPointerException - inLocalenullである場合
      導入されたバージョン:
      1.7
    • getDisplayCountry

      public final String getDisplayCountry()
      ユーザーへの表示に適した、ロケールの国の名前を返します。 可能な場合は、返される名前はデフォルトDISPLAYロケール用にローカライズされます。 たとえば、ロケールがfr_FRでデフォルトDISPLAYロケールがen_USの場合、getDisplayCountry()はFranceを返します。ロケールがen_USでデフォルトDISPLAYロケールがfr_FRの場合、getDisplayCountry()はEtats-Unisを返します。 返される名前がデフォルトDISPLAYロケール用にローカライズできない場合(たとえば、クロアチア語用の日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが国を指定していない場合は、この関数は空の文字列を返します。
      戻り値:
      ロケールに適した国の名前。
    • getDisplayCountry

      public String getDisplayCountry​(Locale inLocale)
      ユーザーへの表示に適した、ロケールの国の名前を返します。 可能な場合、返される名前はinLocaleに従ってローカライズされます。 たとえば、ロケールがfr_FRでinLocaleがen_USの場合、getDisplayCountry()は「France」を返し、ロケールがen_USでinLocaleがfr_FRの場合、getDisplayCountry()は「Etats-Unis」を返します。 返される名前がinLocaleに従ってローカライズできない場合(たとえば、クロアチアに対する日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが国を指定していない場合は、この関数は空の文字列を返します。
      パラメータ:
      inLocale - 取得する表示国のロケール。
      戻り値:
      指定されたロケールに適した国の名前。
      例外:
      NullPointerException - inLocalenullである場合
    • getDisplayVariant

      public final String getDisplayVariant()
      ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。 可能な場合は、名前はデフォルトDISPLAYロケール用にローカライズされます。 ロケールがバリアント・コードを指定していない場合は、この関数は空の文字列を返します。
      戻り値:
      ロケールに適した表示バリアント・コードの名前。
    • getDisplayVariant

      public String getDisplayVariant​(Locale inLocale)
      ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。 可能な場合は、名前はinLocaleにローカライズされます。 ロケールがバリアント・コードを指定していない場合は、この関数は空の文字列を返します。
      パラメータ:
      inLocale - 取得する表示バリアント・コードのロケール。
      戻り値:
      指定されたロケールに適した表示バリアント・コードの名前。
      例外:
      NullPointerException - inLocalenullである場合
    • getDisplayName

      public final String getDisplayName()
      ユーザーへの表示に適した、ロケールの名前を返します。 これは、単一の文字列にアセンブルされたgetDisplayLanguage()、getDisplayScript()、getDisplayCountry()、getDisplayVariant()、およびオプションの「Unicode拡張」によって返される値になります。 空でない値が順に使用され、2番目以降の名前はカッコで囲まれます。 次に例を示します。
      language (script, country, variant(, extension)*)
      language (country(, extension)*)
      language (variant(, extension)*)
      script (country(, extension)*)
      country (extension)*
      使用される形式は、ロケールに指定されているフィールドにより変化します。 前述のカッコ内のフィールド・セパレータ(カンマ文字で示されます)は、ロケールに応じてローカライズできます。 言語、スクリプト、国、およびバリアントの各フィールドがすべて空の場合、この関数は空の文字列を返します。
      戻り値:
      表示に適したロケールの名前。
    • getDisplayName

      public String getDisplayName​(Locale inLocale)
      ユーザーへの表示に適した、ロケールの名前を返します。 これは、getDisplayLanguage()、getDisplayScript(),getDisplayCountry() getDisplayVariant()、およびオプションの「Unicode拡張」によって返された値が単一の文字列に組み立てられたものになります。 空でない値が順に使用され、2番目以降の名前はカッコで囲まれます。 次に例を示します。
      language (script, country, variant(, extension)*)
      language (country(, extension)*)
      language (variant(, extension)*)
      script (country(, extension)*)
      country (extension)*
      使用される形式は、ロケールに指定されているフィールドにより変化します。 前述のカッコ内のフィールド・セパレータ(カンマ文字で示されます)は、ロケールに応じてローカライズできます。 言語、スクリプト、国、およびバリアントの各フィールドがすべて空の場合、この関数は空の文字列を返します。
      パラメータ:
      inLocale - 取得する表示名のロケール。
      戻り値:
      表示に適したロケールの名前。
      例外:
      NullPointerException - inLocalenullである場合
    • clone

      public Object clone()
      Cloneableをオーバーライドします。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      このインスタンスの複製。
      関連項目:
      Cloneable
    • hashCode

      public int hashCode()
      hashCodeをオーバーライドします。 ハッシュ表ではLocaleがしばしば使用されるので、速度を上げるために値がキャッシュされます。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • equals

      public boolean equals​(Object obj)
      このLocaleがもう一方のオブジェクトと等しい場合にtrueを返します。 あるLocaleは、もう一方のLocaleと言語、スクリプト、国、バリアント、および拡張が同じ場合に等しいと見なされ、そうでないすべてのオブジェクトとは等しくないと見なされます。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較対象の参照オブジェクト。
      戻り値:
      このLocaleが指定されたオブジェクトと等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • filter

      public static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)
      RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。 指定されたlocalesに対するこのフィルタ操作は、一意の一致するロケールだけが返されるようにします。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      locales - マッチングに使用されるLocaleインスタンス
      mode - フィルタリング・モード
      戻り値:
      Localeインスタンスのリスト(マッチする言語タグが優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。
      例外:
      NullPointerException - priorityListまたはlocalesnullの場合
      IllegalArgumentException - 1つ以上の拡張言語範囲が、指定されたリストに含まれる場合(Locale.FilteringMode.REJECT_EXTENDED_RANGESが指定されているとき)
      導入されたバージョン:
      1.8
    • filter

      public static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
      RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocaleインスタンスのリストを返します。 これは、modeLocale.FilteringMode.AUTOSELECT_FILTERINGのときのfilter(List, Collection, FilteringMode)と同等です。 指定されたlocalesに対するこのフィルタ操作は、一意の一致するロケールだけが返されるようにします。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      locales - マッチングに使用されるLocaleインスタンス
      戻り値:
      Localeインスタンスのリスト(マッチする言語タグが優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。
      例外:
      NullPointerException - priorityListまたはlocalesnullの場合
      導入されたバージョン:
      1.8
    • filterTags

      public static List<String> filterTags​(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode)
      RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。 与えられたtagsに対するこのフィルタ操作は、保存された大文字と小文字の一致するタグだけが返されることを保証します。 大文字と小文字の違いで一致するタグが重複している場合、保存された大文字と小文字を区別した最初のタグが返されます。 たとえば、"de-ch"が指定されたtagsで一致するかどうかが最初にチェックされていれば、重複一致タグ"de-ch"および"de-CH"から"de-ch"が返されます。 指定されたtagsが順序付けされていないCollectionである場合、重複したタグから返される一致するタグは、Collectionの実装に応じて変更されることに注意してください。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      tags - 言語タグ
      mode - フィルタリング・モード
      戻り値:
      マッチする言語タグのリスト(優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。
      例外:
      NullPointerException - priorityListまたはtagsnullの場合
      IllegalArgumentException - 1つ以上の拡張言語範囲が、指定されたリストに含まれる場合(Locale.FilteringMode.REJECT_EXTENDED_RANGESが指定されているとき)
      導入されたバージョン:
      1.8
    • filterTags

      public static List<String> filterTags​(List<Locale.LanguageRange> priorityList, Collection<String> tags)
      RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。 これは、modeLocale.FilteringMode.AUTOSELECT_FILTERINGのときのfilterTags(List, Collection, FilteringMode)と同等です。 与えられたtagsに対するこのフィルタ操作は、保存された大文字と小文字の一致するタグだけが返されることを保証します。 大文字と小文字の違いで一致するタグが重複している場合、保存された大文字と小文字を区別した最初のタグが返されます。 たとえば、"de-ch"が指定されたtagsで一致するかどうかが最初にチェックされていれば、重複一致タグ"de-ch"および"de-CH"から"de-ch"が返されます。 指定されたtagsが順序付けされていないCollectionである場合、重複したタグから返される一致するタグは、Collectionの実装に応じて変更されることに注意してください。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      tags - 言語タグ
      戻り値:
      マッチする言語タグのリスト(優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。
      例外:
      NullPointerException - priorityListまたはtagsnullの場合
      導入されたバージョン:
      1.8
    • lookup

      public static Locale lookup​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)
      RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグのLocaleインスタンスを返します。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      locales - マッチングに使用されるLocaleインスタンス
      戻り値:
      優先度または重みに基づいて選択されたもっともマッチするLocaleインスタンス、何もマッチしない場合はnull
      例外:
      NullPointerException - priorityListまたはtagsnullの場合
      導入されたバージョン:
      1.8
    • lookupTag

      public static String lookupTag​(List<Locale.LanguageRange> priorityList, Collection<String> tags)
      RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグを返します。 与えられたtagsに対するこのルックアップ操作は、保存された大文字と小文字を区別した最初のタグが返されることを保証します。
      パラメータ:
      priorityList - ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)
      tags - マッチングに使用される言語タグ
      戻り値:
      優先度または重みに基づいて選択されたもっともマッチする言語タグ、何もマッチしない場合はnull
      例外:
      NullPointerException - priorityListまたはtagsnullの場合
      導入されたバージョン:
      1.8