diff --git a/composer.json b/composer.json index 7ba0369..2ee808f 100644 --- a/composer.json +++ b/composer.json @@ -17,8 +17,7 @@ ], "require": { "php": ">=5.6.4", - "laravel/framework": ">=5.4.0", - "jenssegers/agent": "2.6.*" + "laravel/framework": ">=5.4.0" }, "autoload": { "psr-4": { diff --git a/src/Middleware/SetLocale.php b/src/Middleware/SetLocale.php index 9f2b658..63a9a3a 100644 --- a/src/Middleware/SetLocale.php +++ b/src/Middleware/SetLocale.php @@ -3,7 +3,6 @@ namespace Akaunting\Language\Middleware; use Closure; -use Jenssegers\Agent\Agent; class SetLocale { @@ -46,9 +45,20 @@ private function setLocale($locale) public function setDefaultLocale() { if (config('language.auto')) { - $languages = (new Agent())->languages(); - - $this->setLocale(reset($languages)); + $http_header_languages = request()->header('Accept-Language'); + if ($http_header_languages) { + $languages = []; + foreach (explode(',', $http_header_languages) as $language) { + $parts = explode(';', $language); + $language = strtolower($parts[0]); + $priority = empty($parts[1]) ? 1. : floatval(str_replace('q=', '', $parts[1])); + $languages[$language] = $priority; + } + arsort($languages); + $this->setLocale(reset($languages)); + } else { + $this->setLocale(config('app.locale')); + } } else { $this->setLocale(config('app.locale')); } diff --git a/src/Provider.php b/src/Provider.php index 95775a4..55db1fb 100644 --- a/src/Provider.php +++ b/src/Provider.php @@ -4,7 +4,6 @@ use Illuminate\Routing\Router; use Illuminate\Support\ServiceProvider; -use Jenssegers\Agent\AgentServiceProvider; class Provider extends ServiceProvider { @@ -30,8 +29,6 @@ public function boot(Router $router) $router->aliasMiddleware('language', config('language.middleware')); - $this->app->register(AgentServiceProvider::class); - $this->app->singleton('language', function ($app) { return new Language($app); });