ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilHttpRequestsLanguageDetector.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2015 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/Language/interfaces/interface.ilLanguageDetector.php';
5
12{
16 protected $header_value;
17
21 public function __construct($header_value)
22 {
23 $this->header_value = $header_value;
24 }
25
31 public function getIso2LanguageCode()
32 {
33 if (strlen($this->header_value)) {
34 $matches = array();
35 // Format: de,de-DE;q=0.8,en-US;q=0.6,en;q=0.4
36 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);
37 if (count($matches[1])) {
38 $langs = array_combine($matches[1], $matches[4]);
39 foreach ($langs as $lang => $val) {
40 if ($val === '') {
41 $langs[$lang] = 1;
42 }
43 }
44
45 arsort($langs, SORT_NUMERIC);
46
47 $keys = array_keys($langs);
48 if (isset($keys[0])) {
49 return substr($keys[0], 0, 2);
50 }
51 }
52 }
53
54 require_once 'Services/Language/exceptions/class.ilLanguageException.php';
55 throw new ilLanguageException('Could not extract any language information from request.');
56 }
57}
An exception for terminatinating execution or to throw for unit testing.
Class ilHttpRequestsLanguageDetector.
getIso2LanguageCode()
Returns the detected ISO2 language code.
Class for language related exception handling in ILIAS.
Interface ilLanguageDetector.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349
$keys