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:(