- for ($i=0; $i<count($lang_parse[1]); $i++) {
- if ( strlen($lang_parse[1][$i])>2 ) {
- if (! in_array(substr($lang_parse[1][$i], 0, 2), $lang_parse[1] ) ) {
- array_push($lang_parse[1], substr($lang_parse[1][$i], 0, 2));
- if (floatval($lang_parse[4][$i])>0)
- array_push($lang_parse[4], strval(floatval($lang_parse[4][$i])-0.0001));
- else
- array_push($lang_parse[4], '0.9999');
+ // go through the list of prefered languages and add a generic language
+ // for sub-linguas (e.g. de-ch will add de) if not already in array
+ for ($i = 0; $i < count($lang_parse[1]); $i++) {
+ $lang_list[] = strtolower($lang_parse[1][$i]);
+ if (strlen($lang_parse[1][$i])>3 ) {
+ $dashpos = strpos($lang_parse[1][$i], '-');
+ if (!in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list ) ) {
+ $lang_list[] = strtolower(substr($lang_parse[1][$i], 0, $dashpos));