betterCode() PHP 2025

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalizeロケール文字列を正規化する

説明

public static Locale::canonicalize(string $locale): ?string

渡されたロケール文字列を、ICU フォーマットに正規化します。

この関数は有効なロケールを示す、 または返すとは限りません。 単に、ICU の規則に従って正規化された入力のバージョンに過ぎません。

この関数の振る舞いは、 PHP が使っている ICU のバージョン (INTL_ICU_VERSION) に依存します。

パラメータ

locale
オリジナルのロケール文字列

戻り値

正規化されたロケール文字列を返します。

locale の長さが INTL_MAX_LOCALE_LEN を超えた場合、null を返します。

例1 locale_canonicalize() の例

echo Locale::canonicalize('en-US.utf8') . "\n";
echo Locale::canonicalize('totally-not-valid') . "\n";

上の例の出力は、 たとえば以下のようになります。

en_US
totally_NOT_VALID
add a note

User Contributed Notes 1 note

up
4
jerome at chaman dot ca
9 years ago
this method performs Level 1 and Level 2 canonicalization according to ICU standards. See http://userguide.icu-project.org/locale#TOC-Canonicalization.

echo \Locale::canonicalize ( 'en-US.utf8' );
// "en_U"
echo \Locale::canonicalize ( 'FR-fr@EURO' );
// "fr_FR@currency=EUR"
echo \Locale::canonicalize ( '' );
// "en_US_POSIX"
To Top