diff --git a/UrlManager.php b/UrlManager.php index 2fd8968..286da5c 100644 --- a/UrlManager.php +++ b/UrlManager.php @@ -548,44 +548,24 @@ protected function matchCode($code) $language = $code; $country = null; } + if (in_array($language . '-*', $this->languages)) { if ($hasDash) { // TODO: Make wildcards work with script codes // like `sr-Latn` return [$language, strtoupper($country)]; - } else { - return [$language, null]; } - } elseif ($hasDash && in_array($language, $this->languages)) { return [$language, null]; - } else { - return [null, null]; } - } else { - $result = $this->languages[$key]; - return $hasDash ? explode('-', $result, 2) : [$result, null]; + if ($hasDash && in_array($language, $this->languages)) { + return [$language, null]; + } + return [null, null]; } - $language = $code; - $country = null; - $parts = explode('-', $code); - if (count($parts) === 2) { - $language = $parts[0]; - $country = strtoupper($parts[1]); - } + $result = $this->languages[$key]; - if (in_array($code, $this->languages)) { - return [$language, $country]; - } elseif ( - $country && in_array("$language-$country", $this->languages) || - in_array("$language-*", $this->languages) - ) { - return [$language, $country]; - } elseif (in_array($language, $this->languages)) { - return [$language, null]; - } else { - return [null, null]; - } + return $hasDash ? explode('-', $result, 2) : [$result, null]; } /**