/** * Attempt to detected the new locale from the enabled drivers. * * @return string|null The locale that should now be used. */ public function detectLocale() { $sourceDrivers = $this->config->getSourceDrivers(); $key = $this->config->getDefaultKey(); if (!empty($sourceDrivers) && is_string($key)) { foreach ($sourceDrivers as $driver) { $driver = class_exists($driver) ? $this->app->make($driver) : null; if ($driver instanceof BaseDriver && $driver->has($key)) { $newLocale = $driver->get($key); if ($this->config->isEnabledLocale($newLocale)) { $this->locale = $newLocale; return $newLocale; } } } } }