2018-07-24 11:11:32 +00:00
|
|
|
<?php
|
|
|
|
|
|
2018-10-17 13:57:51 +00:00
|
|
|
namespace Webkul\Shop\Http\Middleware;
|
2018-07-24 11:11:32 +00:00
|
|
|
|
|
|
|
|
use Closure;
|
2022-01-13 08:11:18 +00:00
|
|
|
use Webkul\Core\Repositories\LocaleRepository;
|
2018-07-24 11:11:32 +00:00
|
|
|
|
|
|
|
|
class Locale
|
|
|
|
|
{
|
|
|
|
|
/**
|
2022-01-13 08:11:18 +00:00
|
|
|
* Locale repository instance.
|
|
|
|
|
*
|
|
|
|
|
* @var \Webkul\Core\Repositories\LocaleRepository
|
2018-07-24 11:11:32 +00:00
|
|
|
*/
|
2022-01-13 08:11:18 +00:00
|
|
|
protected $localeRepository;
|
2018-07-24 11:11:32 +00:00
|
|
|
|
|
|
|
|
/**
|
2022-01-13 08:57:54 +00:00
|
|
|
* Create a middleware instance.
|
|
|
|
|
*
|
|
|
|
|
* @param \Webkul\Core\Repositories\LocaleRepository $localeRepository
|
|
|
|
|
* @return void
|
2018-07-24 11:11:32 +00:00
|
|
|
*/
|
2022-01-13 08:11:18 +00:00
|
|
|
public function __construct(LocaleRepository $localeRepository)
|
2018-07-24 11:11:32 +00:00
|
|
|
{
|
2022-01-13 08:11:18 +00:00
|
|
|
$this->localeRepository = $localeRepository;
|
2018-07-24 11:11:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2022-01-13 08:11:18 +00:00
|
|
|
* Handle an incoming request.
|
|
|
|
|
*
|
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
|
* @param \Closure $next
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
2018-07-24 11:11:32 +00:00
|
|
|
public function handle($request, Closure $next)
|
|
|
|
|
{
|
2022-01-13 08:11:18 +00:00
|
|
|
if ($localeCode = core()->getRequestedLocaleCode('locale', false)) {
|
|
|
|
|
if ($this->localeRepository->findOneByField('code', $localeCode)) {
|
|
|
|
|
app()->setLocale($localeCode);
|
2018-10-17 13:57:51 +00:00
|
|
|
|
2022-01-13 08:11:18 +00:00
|
|
|
session()->put('locale', $localeCode);
|
2018-10-17 13:57:51 +00:00
|
|
|
}
|
|
|
|
|
} else {
|
2022-01-13 08:11:18 +00:00
|
|
|
if ($localeCode = session()->get('locale')) {
|
|
|
|
|
app()->setLocale($localeCode);
|
2019-07-23 12:17:19 +00:00
|
|
|
} else {
|
|
|
|
|
app()->setLocale(core()->getDefaultChannel()->default_locale->code);
|
2018-07-24 11:11:32 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-05 07:41:11 +00:00
|
|
|
unset($request['locale']);
|
|
|
|
|
|
2018-07-24 11:11:32 +00:00
|
|
|
return $next($request);
|
|
|
|
|
}
|
2019-04-07 01:00:55 +00:00
|
|
|
}
|