- すべての実装されたインタフェース:
Serializable
,Cloneable
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"
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
オブジェクトを構築できます。
ファクトリ・メソッド
メソッドforLanguageTag(java.lang.String)
は、整形式のBCP 47言語タグのLocale
オブジェクトを取得します。 メソッドof(String, String, String)
とそのオーバーロードは、前述の指定されたlanguage
、country
またはvariant
、あるいはその両方からLocale
オブジェクトを取得します。
ロケール定数
Locale
クラスには、一般的に使用されるロケールのLocale
オブジェクトを取得するために使用できる便利な定数が多数用意されています。 たとえば、Locale.US
は米国のLocale
オブジェクトです。
ロケール・マッチング
国際化されていて複数のロケールのためのローカライズされたリソースを提供するアプリケーションまたはシステムは、ユーザー固有の設定を満たす1つ以上のロケール(または言語タグ)を見つける必要がある場合があります。 このロケール・マッチングの説明では、言語タグとロケールが同じ意味で使用されます。
ユーザーが優先するロケールを言語タグ・セットにマッチングするために、RFC 4647 Matching of Language Tagsはフィルタリングおよびルックアップという2つのメカニズムを定義しています。 フィルタリングはマッチングするすべてのロケールを取得するために使用され、ルックアップはもっともよくマッチングするロケールを選択するために使用されます。 マッチングは大文字と小文字の区別なしで行われます。 これらのマッチング・メカニズムについては、この後のセクションで説明します。
ユーザーの設定は言語優先度リストと呼ばれ、言語範囲のリストとして表されます。 構文的には、基本と拡張という2つのタイプの言語範囲があります。 詳細は、Locale.LanguageRange
を参照してください。
フィルタリング
フィルタリング操作はすべてのマッチングする言語タグを返します。 RFC 4647では次のように定義されています: 「フィルタリングでは、各言語範囲は受け入れ可能なマッチングである最小固有言語タグ(つまり、サブタグがもっとも少ない言語タグ)を表します。 タグのマッチング・セット内のすべての言語タグは、言語範囲以上のサブタグを持ちます。 言語範囲内のワイルドカードでないすべてのサブタグは、マッチングするすべての言語タグに出現します。」
フィルタリングには次の2つのタイプがあります: 基本言語範囲用のフィルタリング(「基本フィルタリング」といいます)と拡張言語範囲用のフィルタリング(「拡張フィルタリング」といいます)です。 これらは、指定された言語優先度リストに含まれる言語範囲の種類によって異なる結果を返す場合があります。 Locale.FilteringMode
は、フィルタリングを実行する方法を指定するパラメータです。
検索
ルックアップ操作はもっともマッチングする言語タグを返します。 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つの簡易メソッドがあります。
これらのメソッドにはそれぞれ2つのバリアントがあります。明示的なロケールを持つものと、持たないものです。後者はデフォルトのNumberFormat.getInstance() NumberFormat.getCurrencyInstance() NumberFormat.getPercentInstance()
FORMAT
ロケールを使用します。
NumberFormat.getInstance(myLocale) NumberFormat.getCurrencyInstance(myLocale) NumberFormat.getPercentInstance(myLocale)
Locale
は、どのオブジェクト(NumberFormat
)を取得するかを指定するためのメカニズムです。 ロケールは、オブジェクトを指定するための単なるメカニズムであり、オブジェクト自体のコンテナではありません。
互換性
互換性を維持するために、LocaleコンストラクタはJava Runtime Environmentバージョン1.7より前の動作を保持します。 toString
メソッドについても概して同じことが言えます。 したがって、Localeオブジェクトは以前と同様に使用できます。 特に、toStringの出力を解析して言語、国、およびバリアント・フィールドを取得しているクライアントは、引き続きそうすることができます(ただし、そのようにしないことが強く推奨されます)。ただし、スクリプトまたは拡張が存在する場合は、バリアント・フィールドに追加の情報が含まれることになります。
また、Localeのコンストラクタでは規定されていない構文制限がBCP 47では規定されています。 これは、ロケールとBCP 47言語タグの間の変換で、情報が失われる場合もあることを意味します。 したがって、ロケールの言語、国、またはバリアントがBCP 47に適合していない場合、そのようなロケールの状態をtoLanguageTag
で表すことはできません。
このような問題があるため、クライアントは非準拠ロケールを構築することから移行して、代わりにforLanguageTag
およびLocale.Builder
APIを使用することをお薦めします。 完全なロケールを表す文字列が必要な場合、クライアントはこの目的にはいつでもtoLanguageTag
を利用できます。
特例として
互換性を維持するため、2つの非準拠ロケールが特例として扱われます。 ja_JP_JP
およびth_TH_TH
です。 これらは、バリアントが短すぎるため、BCP 47では整形式ではありません。 BCP 47への移行を容易にするため、これらは構築時に特別に扱われます。 コンストラクタはこれら2つの場合に限り例外を生成し、ほかの値ではJava 7より前とまったく同様に動作します。
Javaでは、ja_JP_JP
を使用して日本で使用されている日本語を和暦とともに表しています。 Unicodeロケール・キーca
("calendar"の場合)を指定し、japanese
と入力することで、Unicodeロケール拡張を使用して表示できるようになりました。 Localeコンストラクタが引数"ja", "JP", "JP"で呼び出されると、拡張「u-ca-japanese」が自動的に追加されます。
Javaでは、タイでタイ語とタイ語とともに使用されるタイ語を表すためにth_TH_TH
が使用されています。 また、Unicodeロケール・キーnu
("number"の場合)および値thai
を指定して、Unicodeロケール拡張を使用して表示できるようになりました。 Localeコンストラクタが引数"th", "TH", "TH"で呼び出されると、拡張「u-nu-thai」が自動的に追加されます。
直列化
直列化の際、拡張も含めすべてのフィールドがwriteObjectによって出力ストリームに書き込まれます。
直列化復元の際、th_TH_THおよびja_JP_JPの2つの場合のみ、「特例」で説明されている拡張がreadResolveによって追加されます。
レガシー言語コード
ロケールのコンストラクタは、常に3つの言語コードを以前の廃止された形式に変換しました: he
はiw
にマップされ、yi
はji
にマップされ、id
はin
にマップされます。 Java SE 17以降は該当しません。 各言語が新しい形式にマップされ、iw
はhe
にマップされ、ji
はyi
にマップされ、in
はid
にマップされます。
下位互換性のある動作の場合、システム・プロパティjava.locale.useOldISOCodes
は、Java SE 17より前の動作に戻ります。 システム・プロパティがtrue
に設定されている場合、現在の3つの言語コードが下位互換性のあるフォームにマップされます。 このプロパティはJavaランタイム起動時にのみ読み取られ、System.setProperty()
に対する後続のコールには影響しません。
1.7で追加されたAPIは、古い言語コードと新しい言語コードの間でマッピングされ、ロケール (getLanguage
およびtoString
が、java.locale.useOldISOCodes
システム・プロパティに依存するマップされたコードを反映するようにします)に内部でマッピングされたコードを保持しますが、BCP 47言語タグAPI (toLanguageTag
が新しいものを反映するようにします)で新しいコードを使用します。 これにより、ロケールの構築に使用されるコードやAPIにかかわらず、ロケール間の等価関係が維持されます。 Javaのデフォルト・リソース・バンドルのルックアップ・メカニズムはこのマッピングも実装するため、どちらかの命名規則でもリソースの名前を指定できます。ResourceBundle.Control
を参照してください。
3文字の言語/国(地域)コード
Localeのコンストラクタでは、言語および国のパラメータの長さは2文字であると指定されてきましたが、実際には任意の長さが受け入れられていました。 この仕様が緩和され、2文字から8文字までの言語コードと、2文字から3文字までの国(地域)コードが許可されるようになりました。特に、IANA言語サブタグ・レジストリに指定されている3文字の言語コードと3桁の地域コードが許可されます。 互換性のため、実装では引き続き長さの制約は課されません。
- 導入されたバージョン:
- 1.1
- 関連項目:
-
ネストされたクラスのサマリー
修飾子と型クラス説明static final class
Builder
は、setterによって構成される値からLocale
のインスタンスを構築するために使用されます。static enum
ロケール・カテゴリの列挙型です。static enum
この列挙型は、ロケール照合のフィルタ・モードを選択するための定数を指定します。static enum
ISO 3166で定義されている型を指定する列挙型。static final class
このクラスはRFC 4647言語タグの照合に定義されている言語範囲を表します。 -
フィールドのサマリー
修飾子と型フィールド説明static final Locale
国に使用する定数です。static final Locale
国に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final char
私用拡張用のキー(「x」)です。static final Locale
ルート・ロケールに使用される定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final Locale
言語に使用する定数です。static final Locale
国に使用する定数です。static final char
Unicodeロケール拡張用のキーです(「u」)。static final Locale
国に使用する定数です。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明clone()
Cloneableをオーバーライドします。boolean
このLocaleがもう一方のオブジェクトと等しい場合にtrueを返します。filter
(List<Locale.LanguageRange> priorityList, Collection<Locale> locales) RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocale
インスタンスのリストを返します。filter
(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode) RFC 4647に定義されているフィルタリング・メカニズムを使用して、一致するLocale
インスタンスのリストを返します。filterTags
(List<Locale.LanguageRange> priorityList, Collection<String> tags) RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。filterTags
(List<Locale.LanguageRange> priorityList, Collection<String> tags, Locale.FilteringMode mode) RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。static Locale
forLanguageTag
(String languageTag) 指定されたIETF BCP 47言語タグ文字列を表すロケールを返します。static Locale[]
インストールされているすべてのロケールの配列を返します。このロケールの国/地域コードを返します。これは、空の文字列、2文字の大文字のISO 3166コード、または3桁のUN M.49コードのいずれかになります。static Locale
Java仮想マシンのこのインスタンスについて、デフォルト・ロケールの現在の値を取得します。static Locale
getDefault
(Locale.Category category) Java仮想マシンのこのインスタンスについて、指定されたカテゴリのデフォルト・ロケールの現在の値を取得します。final String
ユーザーへの表示に適した、ロケールの国の名前を返します。getDisplayCountry
(Locale inLocale) ユーザーへの表示に適した、ロケールの国の名前を返します。final String
ユーザーへの表示に適した、ロケールの言語の名前を返します。getDisplayLanguage
(Locale inLocale) ユーザーへの表示に適した、ロケールの言語の名前を返します。final String
ユーザーへの表示に適した、ロケールの名前を返します。getDisplayName
(Locale inLocale) ユーザーへの表示に適した、ロケールの名前を返します。ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。getDisplayScript
(Locale inLocale) ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。final String
ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。getDisplayVariant
(Locale inLocale) ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。getExtension
(char key) 指定されたキーに関連付けられた拡張(つまり私用)値を返します。キーに関連付けられた拡張がない場合はnullを返します。このロケールに関連付けられた拡張キーのセットを返します。拡張が含まれていない場合は空のセットを返します。ロケールの国の3文字の省略形を返します。このロケールの言語の3文字の省略形を返します。static String[]
ISO 3166で定義されている2桁の国コードのリストを返します。指定された型のISO3166国コードのSet
を返します。static String[]
ISO 639で定義されている2桁の言語コードのリストを返します。このLocaleの言語コードを返します。このロケールのスクリプトを返します。これは、空の文字列または4文字のISO 15924スクリプト・コードのどちらかになります。このロケールに関連付けられたUnicodeロケール属性のセットを返します。属性がない場合は空のセットを返します。このロケールで定義されたUnicodeロケール・キーのセットを返します。このロケールにない場合は空のセットを返します。このロケールの指定されたUnicodeロケール・キーに関連付けられたUnicodeロケール・タイプを返します。このロケールのバリアント・コードを返します。boolean
この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 Locale
言語コードからロケールを取得します。static Locale
言語および国からロケールを取得します。static Locale
言語、国、バリアントからロケールを取得します。static void
setDefault
(Locale newLocale) Java仮想マシンのこのインスタンスのデフォルト・ロケールを設定します。static void
setDefault
(Locale.Category category, Locale newLocale) Java仮想マシンのこのインスタンスについて、指定されたカテゴリ用のデフォルト・ロケールを設定します。このLocale
のコピーを、拡張を除いて返します。このロケールを表す、整形式のIETF BCP 47言語タグを返します。final String
toString()
このLocale
オブジェクトの文字列表現を返します。以下のように、言語、国、バリアント、スクリプト、および拡張子で構成されます: language + "_" + country + "_" + (variant + "_#" | "#") + script + "_" + extensions言語は常に小文字で、国は常に大文字、スクリプトは常にタイトル・ケース、拡張子は常に小文字です。
-
フィールド詳細
-
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
- 関連項目:
-
UNICODE_LOCALE_EXTENSION
public static final char UNICODE_LOCALE_EXTENSIONUnicodeロケール拡張用のキーです(「u」)。- 導入されたバージョン:
- 1.7
- 関連項目:
-
-
コンストラクタの詳細
-
Locale
@Deprecated(since="19") public Locale(String language, String country, String variant) 非推奨。Localeコンストラクタは非推奨になりました。 その他のオプションについては、「ロケールの取得」を参照してください。言語、国、およびバリアントからロケールを構築します。 このコンストラクタは、言語の値を小文字に正規化し、国の値を大文字に正規化します。- 実装上のノート:
- 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- 下位互換性の理由で、このコンストラクタは入力に対して構文チェックは行いません。
- ("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
@Deprecated(since="19") public Locale(String language, String country) 非推奨。Localeコンストラクタは非推奨になりました。 その他のオプションについては、「ロケールの取得」を参照してください。言語および国からロケールを構築します。 このコンストラクタは、言語の値を小文字に正規化し、国の値を大文字に正規化します。- 実装上のノート:
- 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- 下位互換性の理由で、このコンストラクタは入力に対して構文チェックは行いません。
- パラメータ:
language
- ISO 639 alpha-2またはalpha-3言語コード、または最高8文字の言語のサブタグ。 言語の有効な値については、Locale
クラスの説明を参照。country
- ISO 3166 alpha-2の国コードまたはUN M.49 numeric-3の地域コード。 国の有効な値については、Locale
クラスの説明を参照。- 例外:
NullPointerException
- どちらかの引数がnullの場合にスローされる。
-
Locale
@Deprecated(since="19") public Locale(String language) 非推奨。Localeコンストラクタは非推奨になりました。 その他のオプションについては、「ロケールの取得」を参照してください。言語コードからロケールを構築します。 このコンストラクタは、言語の値を小文字に正規化します。- 実装上のノート:
- 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- 下位互換性の理由で、このコンストラクタは入力に対して構文チェックは行いません。
- パラメータ:
language
- ISO 639 alpha-2またはalpha-3言語コード、または最高8文字の言語のサブタグ。 言語の有効な値については、Locale
クラスの説明を参照。- 例外:
NullPointerException
- 引数がnullの場合にスローされる。- 導入されたバージョン:
- 1.4
-
-
メソッドの詳細
-
of
言語、国、バリアントからロケールを取得します。 このメソッドは、言語値を小文字に、国値を大文字に正規化します。- 実装上のノート:
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
Locale.Builder
を使用します。 - ("ja", "JP", "JP")と("th", "TH", "TH")の2つの場合は特別に処理されます。詳細は、「特例」を参照してください。
- 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
- パラメータ:
language
- 言語コード。 language値のLocale
クラスの説明を参照してください。country
- 国コード。 country値のLocale
クラスの説明を参照してください。variant
-Locale
のバリエーションを示すために使用される任意の値。 「バリアント」値のLocale
クラスの説明を参照してください。- 戻り値:
Locale
オブジェクト- 例外:
NullPointerException
- いずれかの引数がnullの場合にスローされる。- 導入されたバージョン:
- 19
-
of
言語および国からロケールを取得します。 このメソッドは、言語値を小文字に、国値を大文字に正規化します。- 実装上のノート:
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
Locale.Builder
を使用します。 - 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
- パラメータ:
language
- 言語コード。 language値のLocale
クラスの説明を参照してください。country
- 国コード。 country値のLocale
クラスの説明を参照してください。- 戻り値:
Locale
オブジェクト- 例外:
NullPointerException
- どちらかの引数がnullの場合にスローされる。- 導入されたバージョン:
- 19
-
of
言語コードからロケールを取得します。 このメソッドは、言語の値を小文字に正規化します。- 実装上のノート:
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
Locale.Builder
を使用します。 - 廃止されたISO 639コード("iw"、"ji"および"in")は、現在のフォームにマップされます。 詳細については、「レガシー言語コード」を参照してください。
- このメソッドでは、入力に対する構文チェックは行われません。 BCP47を使用した完全な構文チェックには、
- パラメータ:
language
- 言語コード。 language値のLocale
クラスの説明を参照してください。- 戻り値:
Locale
オブジェクト- 例外:
NullPointerException
- 引数がnullの場合にスローされる。- 導入されたバージョン:
- 19
-
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
public static void setDefault(Locale newLocale) Java仮想マシンのこのインスタンスのデフォルト・ロケールを設定します。 これは、ホスト・ロケールには影響しません。セキュリティ・マネージャが存在する場合は、デフォルト・ロケールが変更される前に、セキュリティ・マネージャの
checkPermission
メソッドがPropertyPermission("user.language", "write")
アクセス権で呼び出されます。Java仮想マシンでは、ホスト環境に基づいて起動時にデフォルト・ロケールが設定されます。 ロケールが明示的に指定されていない場合、ロケールに依存するメソッドの多くでデフォルト・ロケールが使用されます。
デフォルト・ロケールの変更はさまざまな機能の領域に影響する可能性があるため、このメソッドは、同じJava仮想マシンで実行されるロケール依存コードを呼出し側が再初期化できる場合にだけ使用するようにしてください。
このメソッドでデフォルト・ロケールを設定すると、各カテゴリのすべてのデフォルト・ロケールも指定のデフォルト・ロケールに設定されます。
- パラメータ:
newLocale
- 新しいデフォルトのロケール- 例外:
SecurityException
- セキュリティ・マネージャが存在し、そのcheckPermission
メソッドでこの操作が許可されていない場合。NullPointerException
-newLocale
がnullである場合- 関連項目:
-
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
- 関連項目:
-
getAvailableLocales
public static Locale[] getAvailableLocales()インストールされているすべてのロケールの配列を返します。 返される配列は、Java実行環境およびインストールされているLocaleServiceProvider
実装によってサポートされているロケールの和集合を表します。 少なくとも、返される配列には、Locale.ROOT
に等しいLocale
インスタンスと、Locale.US
に等しいLocale
インスタンスが含まれている必要があります。- 戻り値:
- インストールされているロケールの配列
-
getISOCountries
public static String[] getISOCountries()ISO 3166で定義されている2桁の国コードのリストを返します。 ロケールの取得に使用できます。 このメソッドは、type
Locale.IsoCountryCode.PART1_ALPHA2
を使用したgetISOCountries(Locale.IsoCountryCode type)
と同等です。ノート:
Locale
クラスは、3桁の数字のUN M.49地域コードなど、国(地域)用のほかのコードもサポートしています。 したがって、このメソッドによって返されるリストには、ロケールを取得するために使用できる有効なコードがすべて含まれていません。このメソッドは古い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
- 関連項目:
-
getISOLanguages
public static String[] getISOLanguages()ISO 639で定義されている2桁の言語コードのリストを返します。 ロケールの取得に使用できます。ノート:
- ISO 639は安定した規格ではありません。一部の言語のコードは変更されています。 この関数が返すリストには、コードが変更された言語の新しいコードと従来のコードの両方が含まれています。
Locale
クラスは、8文字までの長さの言語コードもサポートしています。 したがって、このメソッドによって返されるリストには、ロケールを取得するために使用できる有効なコードがすべて含まれていません。
- 戻り値:
- ISO 639の2文字の言語コードの配列。
-
getLanguage
public String getLanguage()このLocaleの言語コードを返します。- 実装上のノート:
- このメソッドは、廃止されたISO 639コード("iw"、"ji"および"in")の新しいフォームを返します。 詳細については、「レガシー言語コード」を参照してください。
- 戻り値:
- 言語コード。定義されたものがない場合は空の文字列。
- 関連項目:
-
getScript
public String getScript()このロケールのスクリプトを返します。これは、空の文字列または4文字のISO 15924スクリプト・コードのどちらかになります。 最初の文字は大文字、残りの文字は小文字で、たとえば「Latn」や「Cyrl」のようになります。- 戻り値:
- スクリプト・コード。定義されたものがない場合は空の文字列。
- 導入されたバージョン:
- 1.7
- 関連項目:
-
getCountry
public String getCountry()このロケールの国/地域コードを返します。これは、空の文字列、2文字の大文字のISO 3166コード、または3桁のUN M.49コードのいずれかになります。- 戻り値:
- 国/地域コード。定義されたものがない場合は空の文字列。
- 関連項目:
-
getVariant
public String getVariant()このロケールのバリアント・コードを返します。- 戻り値:
- バリアント・コード。定義されたものがない場合は空の文字列。
- 関連項目:
-
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
- 関連項目:
-
getExtensionKeys
このロケールに関連付けられた拡張キーのセットを返します。拡張が含まれていない場合は空のセットを返します。 返されたセットは変更できません。 キーはすべて小文字になります。- 戻り値:
- 拡張キーのセット。このロケールに拡張がない場合は空のセット。
- 導入されたバージョン:
- 1.7
-
getUnicodeLocaleAttributes
このロケールに関連付けられたUnicodeロケール属性のセットを返します。属性がない場合は空のセットを返します。 返されたセットは変更できません。- 戻り値:
- 属性のセット。
- 導入されたバージョン:
- 1.7
-
getUnicodeLocaleType
このロケールの指定されたUnicodeロケール・キーに関連付けられたUnicodeロケール・タイプを返します。 キーのタイプが定義されていない場合は、空の文字列を返します。 キーが定義されていない場合はnullを返します。 キーの大文字と小文字は区別されません。 キーは2つの英数字([0-9a-zA-Z])である必要があり、そうでない場合はIllegalArgumentExceptionがスローされます。- パラメータ:
key
- Unicodeロケール・キー- 戻り値:
- キーに関連付けられたUnicodeロケール・タイプ。キーがこのロケールで定義されていない場合はnull。
- 例外:
IllegalArgumentException
- キーが整形式でない場合NullPointerException
-key
がnullである場合- 導入されたバージョン:
- 1.7
-
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
-
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言語タグではありません。 たとえば、
Locale.forLanguageTag("xx-YY").toLanguageTag();
これは「xx-YY」を返しますが、言語サブタグ「xx」と地域サブタグ「YY」はIANA言語サブタグ・レジストリに登録されていないため、無効です。- 戻り値:
- ロケールを表すBCP47言語タグ
- 導入されたバージョン:
- 1.7
- 関連項目:
- すべてのサブセグメントが
-
forLanguageTag
指定されたIETF BCP 47言語タグ文字列を表すロケールを返します。指定された言語タグに整形式でないサブタグが含まれている場合、整形式でない最初のサブタグおよびそれに続くすべてのサブタグが無視されます。 このような場合に例外をスローする
Locale.Builder.setLanguageTag(java.lang.String)
と比較してください。次の変換が実行されます。
- 言語コード「und」は言語""にマップされます。
- 言語コード"iw"、"ji"および"in"は、それぞれ"今日は"、"yi"および"id"にマップされます。 (これは、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の'Language-Tag'本番を実装するため、従来の(通常および不規則、BCP47では"型: grandfathered""と呼ばれます)およびプライベート使用言語タグをサポートします。 スタンドアロンのプライベート使用タグは、空の言語および拡張'x-whatever'として表され、レガシー・タグは、それらが存在する標準的な置換に変換されます。
標準置換を含むレガシー・タグは次のとおりです:
レガシー・タグ 最新の代替 art-lojban jbo i-ami ami i-bnn bnn i-hak hak i-klingon tlh i-lux ポンド i-navajo nv i-pwn pwn i-tao tao i-tay tay i-tsu tsu no-bok nb no-nyn nn sgn-BE-FR sfb sgn-BE-NL vgt sgn-CH-DE sgg zh-guoyu cmn zh-hakka hak zh-min-nan nan zh-xiang hsn 最新の置換なしのレガシー・タグは、次のように変換されます:
レガシー・タグ 変換後 cel-gaulish xtg-x-cel-gaulish en-GB-oed en-GB-x-oed i-default en-x-i-default i-enochian und-x-i-enochian i-mingo see-x-i-mingo zh-min nan-x-zh-min すべてのレガシー・タグのリストは、IANA言語サブタグ・レジストリを参照してください("型: grandfathered"を検索)。
ノート:
toLanguageTag
とforLanguageTag
で元に戻る保証はありません。- パラメータ:
languageTag
- 言語タグ- 戻り値:
- 言語タグをもっとも適切に表すロケール。
- 例外:
NullPointerException
-languageTag
がnull
の場合- 導入されたバージョン:
- 1.7
- 関連項目:
-
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
ユーザーへの表示に適した、ロケールの言語の名前を返します。 可能な場合、返される名前はinLocaleに従ってローカライズされます。 たとえば、ロケールがfr_FRでinLocaleがen_USの場合、getDisplayLanguage()は「French」を返し、ロケールがen_USでinLocaleがfr_FRの場合、getDisplayLanguage()は「anglais」を返します。 返される名前がinLocaleに従ってローカライズできない場合(たとえば、クロアチア語に対する日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが言語を指定していない場合は、この関数は空の文字列を返します。- パラメータ:
inLocale
- 取得する表示言語のロケール。- 戻り値:
- 指定されたロケールに適した表示言語の名前。
- 例外:
NullPointerException
-inLocale
がnull
である場合
-
getDisplayScript
public String getDisplayScript()ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。 可能な場合は、名前はデフォルトDISPLAY
ロケール用にローカライズされます。 このロケールがスクリプト・コードを指定していない場合は、空の文字列を返します。- 戻り値:
- 現在のデフォルト
DISPLAY
ロケール用のスクリプト・コードの表示名 - 導入されたバージョン:
- 1.7
-
getDisplayScript
ユーザーへの表示に適した、ロケールのスクリプトの名前を返します。 可能な場合は、名前は指定されたロケールにローカライズされます。 このロケールがスクリプト・コードを指定していない場合は、空の文字列を返します。- パラメータ:
inLocale
- 取得する表示スクリプトのロケール。- 戻り値:
- 現在のデフォルト
DISPLAY
ロケール用のスクリプト・コードの表示名 - 例外:
NullPointerException
-inLocale
がnull
である場合- 導入されたバージョン:
- 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
ユーザーへの表示に適した、ロケールの国の名前を返します。 可能な場合、返される名前はinLocaleに従ってローカライズされます。 たとえば、ロケールがfr_FRでinLocaleがen_USの場合、getDisplayCountry()は「France」を返し、ロケールがen_USでinLocaleがfr_FRの場合、getDisplayCountry()は「Etats-Unis」を返します。 返される名前がinLocaleに従ってローカライズできない場合(たとえば、クロアチアに対する日本語名がない場合)、この関数は英語名に頼り、最後の手段の値としてISOコードを使用します。 ロケールが国を指定していない場合は、この関数は空の文字列を返します。- パラメータ:
inLocale
- 取得する表示国のロケール。- 戻り値:
- 指定されたロケールに適した国の名前。
- 例外:
NullPointerException
-inLocale
がnull
である場合
-
getDisplayVariant
public final String getDisplayVariant()ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。 可能な場合は、名前はデフォルトDISPLAY
ロケール用にローカライズされます。 ロケールがバリアント・コードを指定していない場合は、この関数は空の文字列を返します。- 戻り値:
- ロケールに適した表示バリアント・コードの名前。
-
getDisplayVariant
ユーザーへの表示に適した、ロケールのバリアント・コードの名前を返します。 可能な場合は、名前はinLocaleにローカライズされます。 ロケールがバリアント・コードを指定していない場合は、この関数は空の文字列を返します。- パラメータ:
inLocale
- 取得する表示バリアント・コードのロケール。- 戻り値:
- 指定されたロケールに適した表示バリアント・コードの名前。
- 例外:
NullPointerException
-inLocale
がnull
である場合
-
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
ユーザーへの表示に適した、ロケールの名前を返します。 これは、単一の文字列にアセンブルされたgetDisplayLanguage()、getDisplayScript()、getDisplayCountry()、getDisplayVariant()およびオプションの「Unicode拡張」によって返される値です。 空でない値が順に使用され、2番目以降の名前はカッコで囲まれます。 たとえば、language (script, country, variant(, extension)*)
使用される形式は、ロケールに指定されているフィールドにより変化します。 前述のカッコ内のフィールド・セパレータ(カンマ文字で示されます)は、ロケールに応じてローカライズできます。 言語、スクリプト、国、およびバリアントの各フィールドがすべて空の場合、この関数は空の文字列を返します。
language (country(, extension)*)
language (variant(, extension)*)
script (country(, extension)*)
country (extension)*
- パラメータ:
inLocale
- 取得する表示名のロケール。- 戻り値:
- 表示に適したロケールの名前。
- 例外:
NullPointerException
-inLocale
がnull
である場合
-
clone
public Object clone()Cloneableをオーバーライドします。 -
hashCode
public int hashCode()hashCodeをオーバーライドします。 ハッシュ表ではLocaleがしばしば使用されるので、速度を上げるために値がキャッシュされます。 -
equals
public boolean equals(Object obj) このLocaleがもう一方のオブジェクトと等しい場合にtrueを返します。 あるLocaleは、もう一方のLocaleと言語、スクリプト、国、バリアント、および拡張が同じ場合に等しいと見なされ、そうでないすべてのオブジェクトとは等しくないと見なされます。 -
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
またはlocales
がnull
の場合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
インスタンスのリストを返します。 これは、mode
がLocale.FilteringMode.AUTOSELECT_FILTERING
のときのfilter(List, Collection, FilteringMode)
と同等です。 指定されたlocales
に対するこのフィルタ操作は、一意の一致するロケールだけが返されるようにします。- パラメータ:
priorityList
- ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)locales
- マッチングに使用されるLocale
インスタンス- 戻り値:
Locale
インスタンスのリスト(マッチする言語タグが優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。- 例外:
NullPointerException
-priorityList
またはlocales
がnull
の場合- 導入されたバージョン:
- 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
またはtags
がnull
の場合IllegalArgumentException
- 1つ以上の拡張言語範囲が、指定されたリストに含まれる場合(Locale.FilteringMode.REJECT_EXTENDED_RANGES
が指定されているとき)- 導入されたバージョン:
- 1.8
-
filterTags
public static List<String> filterTags(List<Locale.LanguageRange> priorityList, Collection<String> tags) RFC 4647に定義されている基本フィルタリング・メカニズムを使用して、一致する言語タグのリストを返します。 これは、mode
がLocale.FilteringMode.AUTOSELECT_FILTERING
のときのfilterTags(List, Collection, FilteringMode)
と同等です。 与えられたtags
に対するこのフィルタ操作は、保存された大文字と小文字の一致するタグだけが返されることを保証します。 大文字と小文字の違いで一致するタグが重複している場合、保存された大文字と小文字を区別した最初のタグが返されます。 たとえば、"de-ch"が指定されたtags
で一致するかどうかが最初にチェックされていれば、重複一致タグ"de-ch"および"de-CH"から"de-ch"が返されます。 指定されたtags
が順序付けされていないCollection
である場合、重複したタグから返される一致するタグは、Collection
の実装に応じて変更されることに注意してください。- パラメータ:
priorityList
- ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)tags
- 言語タグ- 戻り値:
- マッチする言語タグのリスト(優先度または重みに基づいて降順でソートされる)、何もマッチしない場合は空のリスト。 リストは変更可能です。
- 例外:
NullPointerException
-priorityList
またはtags
がnull
の場合- 導入されたバージョン:
- 1.8
-
lookup
public static Locale lookup(List<Locale.LanguageRange> priorityList, Collection<Locale> locales) RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグのLocale
インスタンスを返します。- パラメータ:
priorityList
- ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)locales
- マッチングに使用されるLocale
インスタンス- 戻り値:
- 優先度または重みに基づいて選択されたもっともマッチする
Locale
インスタンス、何もマッチしない場合はnull
。 - 例外:
NullPointerException
-priorityList
またはlocales
がnull
の場合- 導入されたバージョン:
- 1.8
-
lookupTag
public static String lookupTag(List<Locale.LanguageRange> priorityList, Collection<String> tags) RFC 4647で定義されている検索メカニズムを使用してもっとも一致する言語タグを返します。 与えられたtags
に対するこのルックアップ操作は、保存された大文字と小文字を区別した最初のタグが返されることを保証します。- パラメータ:
priorityList
- ユーザーの言語優先度リスト(各言語タグが優先度または重みに基づいて降順でソートされる)tags
- マッチングに使用される言語タグ- 戻り値:
- 優先度または重みに基づいて選択されたもっともマッチする言語タグ、何もマッチしない場合は
null
。 - 例外:
NullPointerException
-priorityList
またはtags
がnull
の場合- 導入されたバージョン:
- 1.8
-