Der Martin: Ermitteln der Sprache des Browsers

Beitrag lesen

Hi,

$bia_lg      =( $_REQUEST['lg'] ) ? $_REQUEST['lg'] : strtolower( $_SERVER['HTTP_ACCEPT_LANGUAGE'] );

// 2010-01-09 AUSDRUECKLICH VERLANGTE SPRACHE HAT VORRANG VOR USER-EINSTELLUNG
// 1.Projektsprache, 2.Browsersprache, 3.Usersprache, 4.GET/POST sprache (hoechste Prioritaet)
$arr_bia_lg  = explode( ',', $bia_lg ); // ru,en;q=0.9,es;q=0.8,de;q=0.7
if ( $arr_bia_lg[0] ) $bia_lg = $arr_bia_lg[0];

  
diese Abfrage ist unnötig - explode() liefert, wenn man es so benutzt, immer ein Array. Selbst wenn kein Komma vorkommt, liefert explode() ein Array mit \*einem\* Element. $arr\_bia\_lg[0] existiert also in jedem Fall.  
  

> `if ( $bia_lg[2]<'a' || $bia_lg[2]>'z' ) $bia_lg = substr( $bia_lg, 0, 2 );`{:.language-php}  
  
Was'n das? "Wenn an dritter Stelle im String kein Kleinbuchstabe steht, nimm nur die ersten zwei Zeichen."  
  

> Nun meldet aber der Firefox de-de, eine Sprache, die es nach ISO 639 nicht gibt.  
  
Dafür aber de-DE. Aber das bügelst du ja ganz oben mit strtolower() platt. Außerdem müsste aufgrund der letzten Abfrage, die ich eben noch hinterfragt habe, ein "de-de" automatisch auf "de" gekürzt werden. Also?  
  

> Bei unbekannter Sprache liefere ich englisch aus, das wurde moniert.  
  
Wenn du internationales Publikum erwartest, okay. Wenn du hauptsächlich deutschsprachiges Publikum erwartest, würde ich als Fallback stattdessen Deutsch ausliefern.  
  

> Welche Seltsamkeiten sind den noch zu erwarten ausserhalb der ISO-Norm?  
  
Wieso außerhalb? ;-)  
  
Ciao,  
 Martin  

-- 
Das Leben ist lebensgefährlich und endet meistens tödlich.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(