File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/module-backend/Model/Locale/Resolver.php
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Backend\Model\Locale;
/**
* Backend locale model
*
* @api
* @since 100.0.2
* @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
*/
class Resolver extends \Magento\Framework\Locale\Resolver
{
/**
* @var \Magento\Backend\Model\Session
*/
protected $_session;
/**
* @var \Magento\Backend\Model\Locale\Manager
*/
protected $_localeManager;
/**
* @var \Magento\Framework\App\RequestInterface
*/
protected $_request;
/**
* @var \Magento\Framework\Validator\Locale
*/
protected $_localeValidator;
/**
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
* @param string $defaultLocalePath
* @param string $scopeType
* @param \Magento\Backend\Model\Session $session
* @param Manager $localeManager
* @param \Magento\Framework\App\RequestInterface $request
* @param \Magento\Framework\Validator\Locale $localeValidator
* @param string|null $locale
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
$defaultLocalePath,
$scopeType,
\Magento\Backend\Model\Session $session,
\Magento\Backend\Model\Locale\Manager $localeManager,
\Magento\Framework\App\RequestInterface $request,
\Magento\Framework\Validator\Locale $localeValidator,
$locale = null
) {
$this->_session = $session;
$this->_localeManager = $localeManager;
$this->_request = $request;
$this->_localeValidator = $localeValidator;
parent::__construct($scopeConfig, $defaultLocalePath, $scopeType, $locale);
}
/**
* Set locale
*
* @param string $locale
* @return $this
*/
public function setLocale($locale = null)
{
$forceLocale = $this->_request->getParam('locale', null);
if (!$this->_localeValidator->isValid($forceLocale)) {
$forceLocale = false;
}
$sessionLocale = $this->_session->getSessionLocale();
$userLocale = $this->_localeManager->getUserInterfaceLocale();
$localeCodes = array_filter([$forceLocale, $locale, $sessionLocale, $userLocale]);
if (count($localeCodes)) {
$locale = reset($localeCodes);
}
return parent::setLocale($locale);
}
}