12

locale

locale
SYNOPSIS

locale()

DESCRIPTION

locale retourne la langue préférée extraite de l'en-tête HTTP Accept-Language.

La fonction retourne le code de langue ISO 639 ayant la plus grande valeur de qualité. Si l'en-tête est absent, locale retourne false.

EXEMPLE

Si la requête HTTP contient l'en-tête Accept-Language: fr-FR,fr;q=0.9,en;q=0.8, locale retourne fr.

CODE
  1. function locale() {
  2.     if (empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
  3.         return false;
  4.     }
  5.  
  6.     $httplanguages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  7.  
  8.     $lang = false;
  9.     $quality = 0.0;
  10.  
  11.     $accepted = preg_split('/,\s*/', $httplanguages);
  12.  
  13.     foreach ($accepted as $accept) {
  14.         $match = null;
  15.         $result = preg_match('/^([a-z]{1,8}(?:[-_][a-z]{1,8})*)(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', $accept, $match);
  16.  
  17.         if ($result < 1) {
  18.             continue;
  19.         }
  20.  
  21.         $q = isset($match[2]) ? (float)$match[2] : 1.0;
  22.  
  23.         if ($q > $quality) {
  24.             $quality = $q;
  25.  
  26.             $lang = strtok($match[1], '-_');
  27.  
  28.             if ($quality == 1.0) {
  29.                 break;
  30.             }
  31.         }
  32.     }
  33.  
  34.     return $lang;
  35. }
VOIR AUSSI

engine

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].