public static function determine() : string
{
if (request()->isBack()) {
return config('app.backLocales')[0];
}
$urlLocale = app()->request->segment(1);
if (static::isValidLocale($urlLocale)) {
return $urlLocale;
}
try {
$cookieLocale = app(Encrypter::class)->decrypt(request()->cookie('locale'));
if (self::isValidLocale($cookieLocale)) {
return $cookieLocale;
}
} catch (Exception $exception) {
}
$browserLocale = collect(request()->getLanguages())->first();
if (self::isValidLocale($browserLocale)) {
return $browserLocale;
}
return app()->getLocale();
}