diff accept-language.inc @ 0:d2da64705bce

Refactored everything in the CMS into this repos.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Tue, 10 May 2011 14:01:34 +0200
parents
children 60e73809887a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accept-language.inc	Tue May 10 14:01:34 2011 +0200
@@ -0,0 +1,24 @@
+<?php
+function acceptedLanguages() {
+  $langs = array();
+
+  if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
+    // break up string into pieces (languages and q factors)
+    preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
+
+    if (count($lang_parse[1])) {
+        // create a list like "en" => 0.8
+        $langs = array_combine($lang_parse[1], $lang_parse[4]);
+
+        // set default to 1 for any without q factor
+        foreach ($langs as $lang => $val) {
+            if ($val === '') $langs[$lang] = 1;
+        }
+
+        // sort list based on value
+        arsort($langs, SORT_NUMERIC);
+    }
+    return $langs;
+  }
+}
+?>
\ No newline at end of file