diff --git a/Message/Http/Request.php b/Message/Http/Request.php index 1390330bf..4559ae3b1 100644 --- a/Message/Http/Request.php +++ b/Message/Http/Request.php @@ -139,6 +139,7 @@ class Request extends RequestAbstract { $this->data = $_GET ?? []; $this->files = $_FILES ?? []; + $this->language = $this->loadRequestLanguage(); if (isset($_SERVER['CONTENT_TYPE'])) { if (strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== false) { @@ -156,6 +157,15 @@ class Request extends RequestAbstract $this->uri = $this->uri ?? new Http(Http::getCurrent()); } + private function loadRequestLanguage() : string + { + $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE']; + $lang = explode(';', $lang); + $lang = explode('-', $lang[0]); + + return $lang[0]; + } + /** * Init pseudo request * @@ -216,6 +226,14 @@ class Request extends RequestAbstract } } + /** + * {@inheritdoc} + */ + public function getLanguage() : string + { + return $this->language; + } + /** * Create request hashs of current request * diff --git a/Message/RequestAbstract.php b/Message/RequestAbstract.php index 212dd4767..d88ab8eb1 100644 --- a/Message/RequestAbstract.php +++ b/Message/RequestAbstract.php @@ -83,13 +83,21 @@ abstract class RequestAbstract implements MessageInterface protected $path = []; /** - * Language. + * Localization. * * @var Localization * @since 1.0.0 */ protected $l11n = null; + /** + * Language. + * + * @var string + * @since 1.0.0 + */ + protected $language = ''; + /** * Account. * @@ -168,6 +176,16 @@ abstract class RequestAbstract implements MessageInterface $this->uri = $uri; } + /** + * Get request language. + * + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + abstract public function getLanguage() : string; + /** * Get request hash. *