Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Middleware/Locale.php
- This file was added.
<?php | |||||
namespace App\Http\Middleware; | |||||
use Closure; | |||||
class Locale | |||||
{ | |||||
/** | |||||
* Handle an incoming request. | |||||
* | |||||
* @param \Illuminate\Http\Request $request | |||||
* @param \Closure $next | |||||
* | |||||
* @return mixed | |||||
*/ | |||||
public function handle($request, Closure $next) | |||||
{ | |||||
$langDir = resource_path('lang'); | |||||
$preferences = array_map( | |||||
function ($lang) { | |||||
return preg_replace('/[^a-z].*$/', '', strtolower($lang)); | |||||
}, | |||||
$request->getLanguages() | |||||
); | |||||
$default = config('app.locale'); | |||||
$lang = null; | |||||
foreach ($preferences as $pref) { | |||||
if (!empty($pref) && ($pref == $default || file_exists("$langDir/$pref"))) { | |||||
$lang = $pref; | |||||
break; | |||||
} | |||||
} | |||||
if ($lang != $default) { | |||||
app()->setLocale($lang); | |||||
} | |||||
return $next($request); | |||||
} | |||||
} |