(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
Locale::lookup -- locale_lookup — Buscar en la lista de etiquetas de lenguaje la mejor coincidencia para el lenguaje
Estilo orientado a objetos
$langtag
   , string $locale
   [, bool $canonicalize = false
   [, string $default
  ]] )Estilo por procedimientos
$langtag
   , string $locale
   [, bool $canonicalize = false
   [, string $default
  ]] )
   Busca los elementos en langtag para la mejor coincidencia con
   el rango de lenguajes especificado en locale de acuerdo al
   algorítmo de búsqueda de RFC 4647. 
  
langtag
       Un array que contiene una lista de etiquetas de lenguaje para compararlas con
       locale. Se permiten 100 elementos máximo.
      
localeLa configuración regional a usar como rango de lenguajes en la comparación.
canonicalize
     Si es verdadero (true), los argumentos serán convertidos a su forma conónica antes de la comparación.
defaultLa configuración regional a usar si no se encuentra ninguna coincidencia.
La etiqueta de lenguaje más parecida o el valor del parámetro default.
Ejemplo #1 Ejemplo de locale_lookup()
<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo locale_lookup($arr, 'de-DE-1996-x-prv1-prv2', false, 'en_US');
?>
Ejemplo #2 Ejemplo orientado a objetos
<?php
$arr = array(
    'de-DEVA',
    'de-DE-1996',
    'de',
    'de-De'
);
echo Locale::lookup($arr, 'de-DE-1996-x-prv1-prv2', false, 'en_US');
?>
El resultado del ejemplo sería:
de_de_1996