storeViewRegistry = $storeViewRegistry; $this->storeManager = $storeManager; } public function resolveFromPath(string $pathInfo): ?string { $firstSegment = $this->getFirstSegment($pathInfo); if ($firstSegment === null) { return null; } $language = strtolower($firstSegment); $allowed = $this->storeViewRegistry->isLanguageInWebsite( $language, (int)$this->storeManager->getWebsite()->getId() ); return $allowed ? $language : null; } private function getFirstSegment(string $pathInfo): ?string { $pathInfo = trim($pathInfo, '/'); if ($pathInfo === '') { return null; } $segments = explode('/', $pathInfo); return $segments[0] !== '' ? $segments[0] : null; } }