Locale::lookup
locale_lookup
(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language
Description
Object oriented style
$langtag
, string $locale
[, bool $canonicalize
= false
[, string $default
]] )Procedural style
$langtag
, string $locale
[, bool $canonicalize
= false
[, string $default
]] )
Searches the items in langtag
for the best match to
the language range specified in locale
according to
RFC 4647's lookup algorithm.
Parameters
-
langtag
-
An array containing a list of language tags to compare to
locale
. Maximum 100 items allowed. -
locale
-
The locale to use as the language range when matching.
-
canonicalize
-
If true, the arguments will be converted to canonical form before matching.
-
default
-
The locale to use if no match is found.
Return Values
The closest matching language tag or default value.
Examples
Example #1 locale_lookup() example
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
Example #2 OO example
<?php
$arr = array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>
The above example will output:
de_de_1996
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Internationalization Functions
- Функция Locale::acceptFromHttp() - Tries to find out best available locale based on HTTP "Accept-Language" header
- Функция Locale::canonicalize() - Canonicalize the locale string
- Функция Locale::composeLocale() - Returns a correctly ordered and delimited locale ID
- Функция Locale::filterMatches() - Checks if a language tag filter matches with locale
- Функция Locale::getAllVariants() - Gets the variants for the input locale
- Функция Locale::getDefault() - Gets the default locale value from the INTL global 'default_locale'
- Функция Locale::getDisplayLanguage() - Returns an appropriately localized display name for language of the inputlocale
- Функция Locale::getDisplayName() - Returns an appropriately localized display name for the input locale
- Функция Locale::getDisplayRegion() - Returns an appropriately localized display name for region of the input locale
- Функция Locale::getDisplayScript() - Returns an appropriately localized display name for script of the input locale
- Функция Locale::getDisplayVariant() - Returns an appropriately localized display name for variants of the input locale
- Функция Locale::getKeywords() - Gets the keywords for the input locale
- Функция Locale::getPrimaryLanguage() - Gets the primary language for the input locale
- Функция Locale::getRegion() - Gets the region for the input locale
- Функция Locale::getScript() - Gets the script for the input locale
- Функция Locale::lookup() - Searches the language tag list for the best match to the language
- Функция Locale::parseLocale() - Returns a key-value array of locale ID subtag elements.
- Функция Locale::setDefault() - sets the default runtime locale
Коментарии
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.
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.