Locale クラス

はじめに

"ロケール" とは、言語や文化等の地域固有の内容を API で取得する際に使用する識別子のことです。PHP で使用しているロケールは、 ICU (そして他の多くの Unix 系 OS や Mac、Java など) が採用している CLDR ロケールと同じです。 ロケールは、RFC 4646 形式の言語タグ (アンダースコアではなくハイフンを使用したもの) を使用します。古くから用いられているアンダースコア形式の識別子も使用できます。 特にことわりがない限り、このクラスの関数では両方の形式の識別子を使用可能です。

識別子の例を以下にあげます。

  • en-US (英語、米国)
  • zh-Hant-TW (中国語、繁体字、台湾 )
  • fr-CA, fr-FR (それぞれ、カナダのフランス語とフランスのフランス語)

Locale クラス (そしてそれに対応する手続き型の関数) を使用して、ロケール識別子に対する操作を行います。 たとえばその識別子が妥当な形式かどうかを調べたりします。 CLDR が UAX #35 で使用している (そして ICU も継承している) 拡張は、ICU で普通に用いることができます。

Locale クラスのインスタンスを作成することはできません。 すべての関数/メソッドは :: を付けて呼び出します。

null や空文字列は "root" ロケールとなります。 この "root" ロケールは、CLDR においては "en_US_POSIX" と同じ意味になります。言語タグ (そして ロケール識別子) は大文字小文字を区別しません。 仕様にあわせて大文字小文字の正規化を行う関数が存在します。

クラス概要

Locale
/* 定数 */
public const int Locale::ACTUAL_LOCALE;
public const int Locale::VALID_LOCALE;
public const null Locale::DEFAULT_LOCALE = null;
public const string Locale::LANG_TAG;
public const string Locale::EXTLANG_TAG;
public const string Locale::SCRIPT_TAG;
public const string Locale::REGION_TAG;
public const string Locale::VARIANT_TAG;
public const string Locale::GRANDFATHERED_LANG_TAG;
public const string Locale::PRIVATE_TAG;
/* メソッド */
public static stringfalse acceptFromHttp(string $header)
public static stringnull canonicalize(string $locale)
public static stringfalse composeLocale(array $subtags)
public static boolnull filterMatches(string $languageTag, string $locale, bool $canonicalize = false)
public static arraynull getAllVariants(string $locale)
public static string getDefault()
public static stringfalse getDisplayLanguage(string $locale, stringnull $displayLocale = null)
public static stringfalse getDisplayName(string $locale, stringnull $displayLocale = null)
public static stringfalse getDisplayRegion(string $locale, stringnull $displayLocale = null)
public static stringfalse getDisplayScript(string $locale, stringnull $displayLocale = null)
public static stringfalse getDisplayVariant(string $locale, stringnull $displayLocale = null)
public static arrayfalsenull getKeywords(string $locale)
public static stringnull getPrimaryLanguage(string $locale)
public static stringnull getRegion(string $locale)
public static stringnull getScript(string $locale)
public static stringnull lookup(
    array $languageTag,
    string $locale,
    bool $canonicalize = false,
    stringnull $defaultLocale = null
)
public static arraynull parseLocale(string $locale)
public static bool setDefault(string $locale)

定義済み定数

Locale::DEFAULT_LOCALE
NumberFormatter のようなロケールの影響を受けるさまざまなクラスのメソッドの locale パラメータとして使用します。 この定数は、デフォルトのロケールをメソッドで使用するようにします。

これらの定数は、さまざまなクラスの getLocale メソッドでロケールを選択するために使用します。

Locale::ACTUAL_LOCALE
これは、データが実際にやってくる元のロケールです。
Locale::VALID_LOCALE
これは、ICU がサポートする最も明確なロケールです。

ロケールのサブタグ

これらの定数は、ロケールのパースや合成の方法を定義します。 locale_compose の引数に渡す配列のキーとして使用し、 また locale_parse が返す連想配列のキーとしても用いられます。

Locale::LANG_TAG
言語サブタグ
Locale::EXTLANG_TAG
拡張言語サブタグ
Locale::SCRIPT_TAG
文字サブタグ
Locale::REGION_TAG
地域サブタグ
Locale::VARIANT_TAG
変化形サブタグ
Locale::GRANDFATHERED_LANG_TAG
先祖言語 (Grandfathered Language) サブタグ
Locale::PRIVATE_TAG
プライベートサブタグ

目次