@@ -136,7 +136,6 @@ public function getAllowedLanguages()
136
136
137
137
public function parseRequest ($ request )
138
138
{
139
- Yii::beginProfile ('bl\locale\UrlManager::parseRequest() ' , 'bl\locale\UrlManager::parseRequest() ' );
140
139
/** @var LanguageProviderInterface $languagePovider */
141
140
$ languagePovider = $ this ->conteiner ->get ('languageProvider ' );
142
141
$ languages = $ languagePovider ->getLanguages ();
@@ -181,13 +180,11 @@ public function parseRequest($request)
181
180
$ saver ->add (new CookieLanguageSave ($ this ->cookieLanguageKey ));
182
181
}
183
182
$ saver ->save ($ language );
184
- Yii::endProfile ('bl\locale\UrlManager::parseRequest() ' , 'bl\locale\UrlManager::parseRequest() ' );
185
183
return parent ::parseRequest ($ request );
186
184
}
187
185
188
186
public function createUrl ($ params )
189
187
{
190
- Yii::beginProfile ('bl\locale\UrlManager::createUrl() ' , 'bl\locale\UrlManager::createUrl() ' );
191
188
$ params = is_string ($ params ) ? [0 => $ params ] : $ params ;
192
189
193
190
@@ -207,11 +204,13 @@ public function createUrl($params)
207
204
}
208
205
$ language = $ receive ->getLanguage ();
209
206
210
-
211
207
unset($ params [$ this ->languageKey ]);
212
-
208
+ $ currentLang = Yii:: $ app -> language ;
213
209
if (!isset ($ language )) {
214
- $ language = \Yii::$ app ->language ;
210
+ $ language = $ currentLang ;
211
+ }
212
+ else {
213
+ Yii::$ app ->language = $ language ;
215
214
}
216
215
$ this ->language = $ language ;
217
216
// $language = isset($language) ? $language : $this->language;
@@ -222,8 +221,11 @@ public function createUrl($params)
222
221
$ url = substr_replace (parent ::createUrl ($ params ), !empty ($ language ) ? "/ $ language " : '' , strlen ($ this ->baseUrl ), 0 );
223
222
$ url = rtrim ($ url , '/ ' );
224
223
225
- Yii::endProfile ('bl\locale\UrlManager::createUrl() ' , 'bl\locale\UrlManager::createUrl() ' );
226
- return $ this ->showDefault || strcasecmp ($ language , $ this ->defaultLanguage ) != 0
224
+ $ result = $ this ->showDefault || strcasecmp ($ language , $ this ->defaultLanguage ) != 0
227
225
? $ url : parent ::createUrl ($ params );
226
+
227
+ Yii::$ app ->language = $ currentLang ;
228
+
229
+ return $ result ;
228
230
}
229
231
}
0 commit comments