ILIAS  release_8 Revision v8.24
class.ilHttpRequestsLanguageDetector.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
22require_once "Services/Language/interfaces/interface.ilLanguageDetector.php";
23
30{
31 protected string $header_value;
32
33 public function __construct(string $header_value)
34 {
35 $this->header_value = $header_value;
36 }
37
42 public function getIso2LanguageCode(): string
43 {
44 if (strlen($this->header_value)) {
45 $matches = array();
46 // Format: de,de-DE;q=0.8,en-US;q=0.6,en;q=0.4
47 preg_match_all("/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i", $this->header_value, $matches);
48 if (count($matches[1])) {
49 $langs = array_combine($matches[1], $matches[4]);
50 foreach ($langs as $lang => $val) {
51 if ($val === '') {
52 $langs[$lang] = 1;
53 }
54 }
55 arsort($langs, SORT_NUMERIC);
56
57 $keys = array_keys($langs);
58 if (isset($keys[0])) {
59 return substr($keys[0], 0, 2);
60 }
61 }
62 }
63
64 require_once "Services/Language/exceptions/class.ilLanguageException.php";
65 throw new ilLanguageException("Could not extract any language information from request.");
66 }
67}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getIso2LanguageCode()
Returns the detected ISO2 language code.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$keys
Definition: metadata.php:204
$lang
Definition: xapiexit.php:26