language.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. function get_preferred_language($available_langs) {
  3. $langs = array();
  4. foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $httplang) {
  5. $rawlang = explode(';q=', $httplang);
  6. if (strpos($rawlang[0], '-') !== FALSE) {
  7. $rawlang[0] = substr($rawlang[0], 0, strpos($rawlang[0], '-'));
  8. }
  9. if (count($rawlang) == 1) {
  10. $rawlang[1] = 1.0;
  11. }
  12. $langs[$rawlang[1]] = $rawlang[0];
  13. }
  14. krsort($langs, SORT_NUMERIC);
  15. foreach($langs as $weight => $code) {
  16. if (in_array($code, $available_langs)) {
  17. return $code;
  18. }
  19. }
  20. return null;
  21. }
  22. function cblue_get_lang($variable) {
  23. return get_lang($variable, null, $_SESSION['user_language_choice']);
  24. }
  25. $language_file = array('courses', 'index', 'registration', 'admin','userInfo');
  26. $available_langs = array('en','fr');
  27. $chamilo_langs = array(null => 'english', 'en' => 'english', 'fr' => 'french', 'nl' => 'dutch', 'de' => 'german', 'es' => 'spanish');
  28. $lang_match = $chamilo_langs[get_preferred_language($available_langs)];
  29. // recover previous value ...
  30. if (isset($_SESSION['user_language_choice']))
  31. $lang_match = $_SESSION['user_language_choice'];
  32. // Chamilo parameter, on logout
  33. if (isset($_REQUEST['language']) && !empty($_REQUEST['language']) && in_array($_REQUEST['language'], $chamilo_langs)) {
  34. $lang_match = $_REQUEST['language'];
  35. }
  36. // Incoming link parameter
  37. if (isset($_REQUEST['lang']) && !empty($_REQUEST['lang']) && in_array($_REQUEST['lang'], $available_langs)) {
  38. $lang_match = $chamilo_langs[$_REQUEST['lang']];
  39. }
  40. $_user['language'] = $lang_match;
  41. $_SESSION['user_language_choice'] = $lang_match;
  42. ?>