Locale クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Locale オブジェクトは、特定の地理的、政治的、または文化的地域を表します。
[Android.Runtime.Register("java/util/Locale", DoNotGenerateAcw=true)]
public sealed class Locale : Java.Lang.Object, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/Locale", DoNotGenerateAcw=true)>]
type Locale = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
- 継承
- 属性
- 実装
注釈
Locale オブジェクトは、特定の地理的、政治的、または文化的地域を表します。 タスクを実行するために Locale を必要とする操作は、 <em>locale-sensitive</em> と呼ばれ、 Locale を使用してユーザーの情報を調整します。 たとえば、数値の表示はロケールに依存する操作です。mdash;番号は、ユーザーの母国、地域、または文化の習慣と規則に従って書式設定する必要があります。
Locale クラスは、RFC 4647 "言語タグの照合" と RFC 5646 "言語識別用タグ" で構成される IETF BCP 47 を実装し、LDML (UTS#35、"Unicode Locale Data Markup Language") BCP 47 互換のロケール データ交換拡張機能をサポートします。
Locale オブジェクトは、以下で説明するフィールドで論理的に構成されます。
<dl><dt>"def_language"><b>language</b></dt>
<dd>ISO 639 alpha-2 または alpha-3 言語コード、または登録済み言語サブタグ最大 8 文字 (将来の機能強化のため)。 言語にアルファ 2 コードとアルファ 3 コードの両方がある場合は、alpha-2 コードを使用する必要があります。 有効な言語コードの完全な一覧は、IANA 言語サブタグ レジストリにあります ("型: 言語" を検索してください)。 言語フィールドでは大文字と小文字は区別されませんが、 Locale 常に小文字に正規化されます。</dd>
<dd>ウェル形式の言語値には、 [a-zA-Z]{2,8}形式があります。 これは、extlang を除外するため、完全な BCP47 言語の運用環境ではないことに注意してください。 最新の 3 文字の言語コードで置き換えられるため、これらは必要ありません。</dd>
<dd>Example: "en" (英語)、"ja" (日本語)、"kok" (Konkani)</dd>
<dt>"def_script"><b>script</b></dt>
<dd>ISO 15924 alpha-4 スクリプト コード。 有効なスクリプト コードの完全な一覧は、IANA 言語サブタグ レジストリにあります ("型: スクリプト" を検索します)。 スクリプト フィールドでは大文字と小文字が区別されませんが、 Locale は常にタイトル ケースに正規化されます (最初の文字は大文字、残りの文字は小文字です)。</dd>
<dd>ウェル形式のスクリプト値は、 [a-zA-Z]{4}</dd 形式です。>
<dd>Example: "Latn" (ラテン)、"Cyrl" (キリル)</dd>
<dt>"def_region"><b>country (region)</b></dt>
<dd>ISO 3166 alpha-2 country code または UN M.49 numeric-3 area code. 有効な国と地域のコードの完全な一覧は、IANA 言語サブタグ レジストリにあります ("Type: region" を検索してください)。 country (region) フィールドでは大文字と小文字が区別されませんが、常に大文字に正規化 Locale 。</dd>
<dd>ウェル形式の国/地域の値は、 [a-zA-Z]{2} | [0-9]{3}</dd という形式になります。>
<dd>Example: "US" (米国)、"FR" (フランス)、"029" (カリブ海)、</dd>
<dt>"def_variant"><b>variant</b></dt>
<dd>Localeのバリエーションを示すために使用される任意の値。 それぞれ独自のセマンティクスを示すバリアント値が 2 つ以上ある場合、これらの値は重要度で並べ替え、最も重要なものは最初にアンダースコア('_')で区切る必要があります。 バリアント フィールドでは大文字と小文字が区別されます。</dd>
<dd>Note: IETF BCP 47 では、バリアント サブタグに構文上の制限があります。 また、BCP 47 サブタグは、言語、スクリプト、および地域のサブタグの組み合わせでカバーされていない言語またはその方言を定義する追加のバリエーションを示すために厳密に使用されます。 有効なバリアント コードの完全な一覧は、IANA 言語サブタグ レジストリにあります ("型: バリアント" を検索してください)。
ただし、 Locale のバリアント フィールドは、言語のバリエーションだけでなく、あらゆる種類のバリエーションに使用されてきました。 たとえば、Java SE ランタイム環境で使用できる一部のサポートされているバリアントは、カレンダーの種類や番号スクリプトなどの別のカルチャ動作を示しています。 BCP 47 では、言語を識別しないこの種の情報は、拡張サブタグまたはプライベート使用サブタグによってサポートされます。</dd>
<dd>ウェル形式のバリアント値は、SUBTAG (('_'|'-') SUBTAG)*SUBTAG = [0-9][0-9a-zA-Z]{3} | [0-9a-zA-Z]{5,8}形式になります。 (注: BCP 47 では、区切り記号としてハイフン ('-') のみが使用されます。これはより緩やかです)。</dd>
<dd>Example: "polyton" (ポリトニック ギリシャ語)、"POSIX"</dd>
<dt>"def_extensions"><b>extensions</b></dt>
<dd>単一文字キーから文字列値にマップされ、言語識別とは別の拡張を示します。
Localeの拡張機能は、BCP 47 拡張サブタグとプライベート使用サブタグのセマンティクスと構文を実装します。 拡張機能では大文字と小文字は区別されませんが、 Locale は、すべての拡張キーと値を小文字に正規化します。 拡張機能は空の値を持つことはできません。</dd>
<dd>ウェル形式のキーは、セット [0-9a-zA-Z]の 1 文字です。 整形式の値は、キー 'x' SUBTAG ('-' SUBTAG)*とその他のキーのSUBTAG = [0-9a-zA-Z]{1,8} (つまり、'x' では 1 文字のサブタグを使用できます)、フォーム SUBTAG = [0-9a-zA-Z]{2,8}を持ちます。</dd>
<dd>Example: key="u"/value="ca-japanese" (日本語カレンダー),key="x"/value="java-1-7"</dd></dl>
<b>Note:</b> BCP 47 ではフィールド値を IANA 言語サブタグ レジストリに登録する必要がありますが、 Locale クラスには検証機能はありません。
Builderでは、個々のフィールドが構文要件 (整形式) を満たすかどうかのみが確認されますが、値自体は検証されません。 詳細については、Builder を参照してください。
<h2>"def_locale_extension">Unicode locale/language extension</h2>
UTS#35 の "Unicode ロケール データ マークアップ言語" では、ロケールに関連付けられている既定の動作をオーバーライドまたは絞り込むための省略可能な属性とキーワードが定義されています。 キーワードは、キーと型のペアで表されます。 たとえば、"nu-thai" は、タイ語のローカル数字 (value:"thai") を使用して数値 (key:"nu") を書式設定する必要があることを示します。
キーワードは、拡張キー 'u' (#UNICODE_LOCALE_EXTENSION) を使用して BCP 47 拡張値にマップされます。 上記の例 "nu-thai" は、拡張子 "u-nu-thai" になります。
したがって、 Locale オブジェクトに Unicode ロケール属性とキーワードが含まれている場合、 getExtension(UNICODE_LOCALE_EXTENSION) はこの情報を表す文字列 ("nu-thai" など) を返します。
Locale クラスには、Unicode ロケール属性とキー/型ペアに直接アクセスできる#getUnicodeLocaleAttributes、#getUnicodeLocaleKeys、および#getUnicodeLocaleTypeも用意されています。 文字列として表される場合、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 ランタイム環境での実際のロケール依存サービスの実装では、特定の Unicode ロケール属性やキー/型のペアがサポートされない場合があります。
<h3>"ObtainingLocale">ロケールの取得</h3>
Locale オブジェクトを取得するには、いくつかの方法があります。
<h4>Builder</h4>
Builderを使用すると、BCP 47 構文に準拠するLocale オブジェクトを構築できます。
<h4>Factory メソッド</h4>
このメソッド #forLanguageTag は、整形式の BCP 47 言語タグの Locale オブジェクトを取得します。 メソッド#of(String, String, String)とそのオーバーロードは、上記で定義した特定のLocale、language、またはcountryからvariant オブジェクトを取得します。
<h4>Locale 定数</h4>
Locale クラスには、一般的に使用されるロケールのLocale オブジェクトを取得するために使用できる便利な定数が多数用意されています。 たとえば、Locale.USは米国のLocale オブジェクトです。
<h3>"LocaleMatching">Locale Matching</h3>
アプリケーションまたはシステムが国際化され、複数のロケールにローカライズされたリソースを提供する場合、各ユーザーの特定の設定を満たす 1 つ以上のロケール (または言語タグ) を見つける必要がある場合があります。 このロケールに一致するドキュメントでは、"language tag" という用語が "locale" と同じ意味で使用されることに注意してください。
ユーザーの優先ロケールを言語タグのセットに照合するために、 RFC 4647 言語タグの照合 では、フィルター処理と検索という 2 つのメカニズムが定義されています。 <em>Filtering</em> は一致するすべてのロケールを取得するために使用されますが、 <em>lookup</em> は最適なロケールを選択することです。 照合は大文字と小文字を区別せずに行われます。 これらの照合メカニズムについては、次のセクションで説明します。
ユーザーの設定は、 <em>Language Priority List</em> と呼ばれ、言語範囲の一覧として表されます。 構文的には、基本言語と拡張言語の 2 種類の言語範囲があります。 詳細については、Locale.LanguageRange Locale.LanguageRange を参照してください。
<h4>Filtering</h4>
フィルター処理操作は、一致するすべての言語タグを返します。 RFC 4647 では、次のように定義されています。"フィルター処理では、各言語範囲は、許容される一致する最小の言語タグ (つまり、サブタグの数が最も少ない言語タグ) を表します。 一致するタグのセット内のすべての言語タグは、言語範囲と等しいか、より多くのサブタグを持ちます。 言語範囲のすべての非ワイルドカード サブタグは、一致する言語タグごとに表示されます。
フィルター処理には、基本言語範囲のフィルター処理 ("基本フィルター" と呼ばれます) と拡張言語範囲のフィルター処理 ("拡張フィルター" と呼ばれます) の 2 種類があります。 指定された言語優先度リストに含まれる言語範囲の種類によって、異なる結果が返される場合があります。
Locale.FilteringMode は、フィルター処理の実行方法を指定するパラメーターです。
<h4>Lookup</h4>
検索操作は、最適に一致する言語タグを返します。 RFC 4647 では、次のように定義されています。"フィルター処理とは対照的に、各言語範囲は許容される一致する最も具体的なタグを表します。 ユーザーの優先順位に従って最初に見つかった一致するタグは、最も近い一致と見なされ、返される項目です。"
たとえば、言語優先度リストが 2 つの言語範囲 ( "zh-Hant-TW" と "en-US") で構成されている場合、ルックアップメソッドは、次の言語タグを順に検索して、最適な言語タグを見つけます。
<blockquote>
1. zh-Hant-TW
2. zh-Hant
3. zh
4. en-US
5. en
</blockquote> 上記の言語範囲に完全に一致する言語タグがある場合は、言語タグが返されます。
"*" は特殊な言語範囲であり、ルックアップでは無視されます。
言語範囲に含まれるサブタグ'*'の結果として複数の言語タグが一致する場合、言語タグのIteratorに対してCollectionによって返される最初の一致する言語タグは、最適な言語タグとして扱われます。
<h3>ロケールの使用</h3>
Localeを取得したら、それ自体に関する情報を照会できます。
getCountryを使用して国 (または地域) コードを取得し、言語コードを取得するgetLanguageします。
getDisplayCountryを使用して、ユーザーに表示するのに適した国の名前を取得できます。 同様に、 getDisplayLanguage を使用して、ユーザーに表示するのに適した言語の名前を取得できます。 興味深いことに、 getDisplayXXX メソッド自体はロケールに依存し、既定の Locale.Category#DISPLAY DISPLAY ロケールを使用するバージョンと、引数として指定されたロケールを使用するバージョンの 2 つのバージョンがあります。
Java プラットフォームには、ロケールに依存する操作を実行するクラスが多数用意されています。 たとえば、 NumberFormat クラスは、ロケールに依存する方法で数値、通貨、およびパーセンテージを書式設定します。
NumberFormatなどのクラスには、その型の既定のオブジェクトを作成するための便利なメソッドがいくつかあります。 たとえば、 NumberFormat クラスには、既定の NumberFormat オブジェクトを作成するための便利な 3 つのメソッドが用意されています。
1.1 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| Locale(String, String, String) |
言語、国、バリアントからロケールを構築します。 |
| Locale(String, String) |
言語と国からロケールを構築します。 |
| Locale(String) |
言語コードからロケールを構築します。 |
フィールド
| 名前 | 説明 |
|---|---|
| PrivateUseExtension |
秘密使用拡張機能 ('x') のキー。 |
| UnicodeLocaleExtension |
Unicode ロケール拡張 ('u') のキー。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Canada |
国に便利な定数。 |
| CanadaFrench |
国に便利な定数。 |
| China |
国に便利な定数。 |
| Chinese |
言語に便利な定数。 |
| Class |
この |
| Country |
このロケールの国/地域コードを返します。これは、空の文字列、大文字の ISO 3166 2 文字コード、または UN M のいずれかである必要があります。 |
| Default |
Java仮想マシンのこのインスタンスの既定のロケールの現在の値を取得します。 または、Java仮想マシンのこのインスタンスの既定のロケールを設定します。 |
| DisplayCountry |
ユーザーへの表示に適したロケールの国の名前を返します。 |
| DisplayLanguage |
ユーザーに表示するのに適したロケールの言語の名前を返します。 |
| DisplayName |
ユーザーに表示するのに適したロケールの名前を返します。 |
| DisplayScript |
ユーザーに表示するのに適したロケールのスクリプトの名前を返します。 |
| DisplayVariant |
ユーザーに表示するのに適したロケールのバリアント コードの名前を返します。 |
| English |
言語に便利な定数。 |
| ExtensionKeys |
このロケールに関連付けられている拡張キーのセットを返します。拡張機能がない場合は空のセットを返します。 |
| France |
国に便利な定数。 |
| French |
言語に便利な定数。 |
| German |
言語に便利な定数。 |
| Germany |
国に便利な定数。 |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| HasExtensions |
この |
| ISO3Country |
このロケールの国の 3 文字の省略形を返します。 |
| ISO3Language |
このロケールの言語の 3 文字の省略形を返します。 |
| Italian |
言語に便利な定数。 |
| Italy |
国に便利な定数。 |
| Japan |
国に便利な定数。 |
| Japanese |
言語に便利な定数。 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| Korea |
国に便利な定数。 |
| Korean |
言語に便利な定数。 |
| Language |
このロケールの言語コードを返します。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| Prc |
国に便利な定数。 |
| Root |
ルート ロケールの便利な定数。 |
| Script |
このロケールのスクリプトを返します。空の文字列または ISO 15924 4 文字のスクリプト コードを指定する必要があります。 |
| SimplifiedChinese |
言語に便利な定数。 |
| Taiwan |
国に便利な定数。 |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| TraditionalChinese |
言語に便利な定数。 |
| Uk |
国に便利な定数。 |
| UnicodeLocaleAttributes |
このロケールに関連付けられている Unicode ロケール属性のセットを返します。属性がない場合は空のセットを返します。 |
| UnicodeLocaleKeys |
このロケールで定義されている Unicode ロケール キーのセットを返します。このロケールに何も設定されていない場合は空のセットを返します。 |
| Us |
国に便利な定数。 |
| Variant |
このロケールのバリアント コードを返します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
Cloneable をオーバーライドします。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Filter(IList<Locale.LanguageRange>, ICollection<Locale>, Locale+FilteringMode) |
RFC 4647 で定義されているフィルター処理メカニズムを使用して、一致する |
| Filter(IList<Locale.LanguageRange>, ICollection<Locale>) |
RFC 4647 で定義されているフィルター処理メカニズムを使用して、一致する |
| FilterTags(IList<Locale.LanguageRange>, ICollection<String>, Locale+FilteringMode) |
RFC 4647 で定義されている基本的なフィルター処理メカニズムを使用して、一致する言語タグの一覧を返します。 |
| FilterTags(IList<Locale.LanguageRange>, ICollection<String>) |
RFC 4647 で定義されている基本的なフィルター処理メカニズムを使用して、一致する言語タグの一覧を返します。 |
| ForLanguageTag(String) |
指定した IETF BCP 47 言語タグ文字列のロケールを返します。 |
| GetAvailableLocales() |
インストールされているすべてのロケールの配列を返します。 |
| GetDefault(Locale+Category) |
Java仮想マシンのこのインスタンスの既定のロケールの現在の値を取得します。 |
| GetDisplayCountry(Locale) |
|
| GetDisplayLanguage(Locale) |
|
| GetDisplayName(Locale) |
このロケールの言語名、国名、バリアントを |
| GetDisplayScript(Locale) |
ユーザーに表示するのに適したロケールのスクリプトの名前を返します。 |
| GetDisplayVariant(Locale) |
ユーザーに表示するのに適したロケールのバリアント コードの名前を返します。 |
| GetExtension(Char) |
指定したキーに関連付けられている拡張機能 (または秘密使用) の値を返します。キーに関連付けられている拡張子がない場合は null を返します。 |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetISOCountries() |
ISO 3166 で定義されているすべての 2 文字の国コードの一覧を返します。 |
| GetISOCountries(Locale+IsoCountryCode) |
|
| GetISOLanguages() |
ISO 639 で定義されているすべての 2 文字の言語コードと一部の 3 文字コードの一覧を返します。 |
| GetUnicodeLocaleType(String) |
このロケールの指定した Unicode ロケール キーに関連付けられている Unicode ロケール型を返します。 |
| JavaFinalize() |
古い.
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Lookup(IList<Locale.LanguageRange>, ICollection<Locale>) |
RFC 4647 で定義されている参照メカニズムを使用して、最適に一致する言語タグの |
| LookupTag(IList<Locale.LanguageRange>, ICollection<String>) |
RFC 4647 で定義されている参照メカニズムを使用して、最適に一致する言語タグを返します。 |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Of(String, String, String) |
|
| Of(String, String) |
|
| Of(String) |
|
| SetDefault(Locale+Category, Locale) |
Java仮想マシンのこのインスタンスの指定したカテゴリの既定のロケールを設定します。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| StripExtensions() |
拡張機能のないこの |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToLanguageTag() |
このロケールを表す整形式の IETF BCP 47 言語タグを返します。 |
| ToString() |
言語、国、バリアント、スクリプト、および拡張機能で構成される、この
|
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|