PHP 8.5.0 Alpha 1 available for testing

Locale::lookup

locale_lookup

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

Locale::lookup -- locale_lookupBúsqueda en la lista de la mejor lengua

Descripción

Estilo orientado a objetos

public static Locale::lookup(
    array $languageTag,
    string $locale,
    bool $canonicalize = false,
    ?string $defaultLocale = null
): ?string

Estilo por procedimientos

locale_lookup(
    array $languageTag,
    string $locale,
    bool $canonicalize = false,
    ?string $defaultLocale = null
): ?string

Búsqueda en la lista languageTag de la mejor lengua, para la configuración local especificada por locale, según el algoritmo de la RFC 4647.

Parámetros

languageTag

Un tableau que contiene una lista de lenguas a comparar con la configuración local locale. Se permite un máximo de 100 elementos.

locale

La configuración local a utilizar para realizar la búsqueda.

canonicalize

Si true los argumentos serán convertidos a su forma canónica antes de su búsqueda.

defaultLocale

La configuración local a utilizar si no se encuentra ninguna solución.

Valores devueltos

La lengua más cercana que haya sido encontrada en la lista, o bien el valor por defecto.

Returns null when the length of locale exceeds INTL_MAX_LOCALE_LEN.

Historial de cambios

Versión Descripción
7.4.0 defaultLocale ahora es nullable.

Ejemplos

Ejemplo #1 Ejemplo con locale_lookup(), procedimental

<?php
$arr
= array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo
locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

Ejemplo #2 Ejemplo con Locale::lookup(), POO

<?php
$arr
= array(
'de-DEVA',
'de-DE-1996',
'de',
'de-De'
);
echo
Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', true, 'en_US');
?>

El resultado del ejemplo sería:

de_de_1996

Ver también

add a note

User Contributed Notes 2 notes

up
2
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.
up
1
Anonymous
10 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.
To Top