Locale::lookup
locale_lookup
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Locale::lookup -- locale_lookup — その言語にマッチする言語タグの一覧を検索する
説明
オブジェクト指向型
public static Locale::lookup(
array
string
bool
?string
): ?string
array
$languageTag
,string
$locale
,bool
$canonicalize
= false
,?string
$defaultLocale
= null
): ?string
手続き型
locale_lookup(
array
string
bool
?string
): ?string
array
$languageTag
,string
$locale
,bool
$canonicalize
= false
,?string
$defaultLocale
= null
): ?string
languageTag
の中から、
locale
で指定した言語の範囲に最もマッチするものを
RFC 4647 の検索アルゴリズムで調べます。
パラメータ
languageTag
-
locale
と比較したい言語タグの一覧を含む配列。 最大で 100 件まで指定できます。 locale
-
調べる対象となる言語の範囲として使用するロケール。
-
canonicalize
-
true の場合は、引数を正式な形式に変換してからマッチを行います。
defaultLocale
-
マッチしなかったときに使用するロケール。
変更履歴
バージョン | 説明 |
---|---|
7.4.0 |
defaultLocale は、nullable になりました。
|
例
例1 locale_lookup() の例
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
例2 オブジェクト指向の例
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
上の例の出力は以下となります。
de_de_1996
+add a note
User Contributed Notes 2 notes
vladimir at bashkirtsev dot com ¶
10 years ago
It worth to note that if $langtag array is empty this function returns empty string and not $default . Use array(false) if your $langtag array is empty in order to get default locale.
Anonymous ¶
9 years ago
Note that this method does not understand "similar" languages, so the following:
Locale::lookup(["en-US"], "en-GB", false);
Or:
Locale::lookup(["es-ES"], "es-CO", false);
Does not work as you would expect (empty result). To get a match in those cases you will have to use two letter language codes instead:
Locale::lookup(["en"], "en-GB", false);
Or:
Locale::lookup(["es"], "es-CO", false);
These do return 'en' and 'es' respectively.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google