/** * @param array|string $params * @return string */ public function createUrl($params) { $params = (array) $params; $language = isset($params['language']) ? $params['language'] : Language::getCurrent(); if (!Language::isLanguage($language)) { $language = Language::getCurrent(); } unset($params['route'], $params['language']); $params['0'] = $language . '/' . trim($params['0'], '/'); return parent::createUrl($params); }
/** * @return bool|string */ protected function resolveRequestUri() { $pattern = []; $resolveRequestUri = parent::resolveRequestUri(); if (Yii::$app->getUrlManager()->enablePrettyUrl === true) { $pattern[] = '/' . preg_replace('/\\//', '\\/', Yii::$app->getUrlManager()->suffix) . '/'; } if (Yii::$app->getUrlManager()->showScriptName === true) { $pattern[] = '/' . preg_replace('/\\//', '\\/', $this->getScriptUrl()) . '/'; } $requestUri = preg_replace($pattern, '', $resolveRequestUri); list($language, ) = explode('/', trim($requestUri, '/')); if (Language::isLanguage($language)) { Language::setCurrent($language); } else { Language::setCurrent($this->getPreferredLanguage(ArrayHelper::getColumn(Language::listing(), 'iso'))); } return $resolveRequestUri; }