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)
|
||||
{
|
||||
$locale = $request->input('lang') ?? $request->cookie('locale') ?? $request->getPreferredLanguage();
|
||||
if (($info = Arr::get(config('locales'), $locale)) && ($alias = Arr::get($info, 'alias'))) {
|
||||
$locale = $request->input('lang')
|
||||
?? $request->cookie('locale')
|
||||
?? $request->getPreferredLanguage();
|
||||
if (
|
||||
($info = Arr::get(config('locales'), $locale)) &&
|
||||
($alias = Arr::get($info, '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);
|
||||
|
||||
return $next($request);
|
||||
|
|
|
|||
|
|
@ -97,4 +97,11 @@ class JavaScriptTest extends TestCase
|
|||
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