Fix detecting unknown locale
This commit is contained in:
parent
0fbf16acad
commit
c665adf1c8
|
|
@ -9,11 +9,21 @@ class DetectLanguagePrefer
|
||||||
{
|
{
|
||||||
public function handle($request, \Closure $next)
|
public function handle($request, \Closure $next)
|
||||||
{
|
{
|
||||||
$locale = $request->input('lang') ?? $request->cookie('locale') ?? $request->getPreferredLanguage();
|
$locale = $request->input('lang')
|
||||||
if (($info = Arr::get(config('locales'), $locale)) && ($alias = Arr::get($info, 'alias'))) {
|
?? $request->cookie('locale')
|
||||||
|
?? $request->getPreferredLanguage();
|
||||||
|
if (
|
||||||
|
($info = Arr::get(config('locales'), $locale)) &&
|
||||||
|
($alias = Arr::get($info, 'alias'))
|
||||||
|
) {
|
||||||
$locale = $alias;
|
$locale = $alias;
|
||||||
}
|
}
|
||||||
app()->setLocale($locale ?? app()->getLocale());
|
$locale ?? app()->getLocale();
|
||||||
|
if (! Arr::has(config('locales'), $locale)) {
|
||||||
|
$locale = config('app.fallback_locale');
|
||||||
|
}
|
||||||
|
|
||||||
|
app()->setLocale($locale);
|
||||||
Cookie::queue('locale', $locale);
|
Cookie::queue('locale', $locale);
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
|
|
|
||||||
|
|
@ -97,4 +97,11 @@ class JavaScriptTest extends TestCase
|
||||||
resolve(JavaScript::class)->plugin('en')
|
resolve(JavaScript::class)->plugin('en')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testFallbackLocale()
|
||||||
|
{
|
||||||
|
$this->get('/', ['Accept-Language' => 'xyz'])
|
||||||
|
->assertSuccessful()
|
||||||
|
->assertSee('lang/en.js');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user