@@ -26,19 +26,26 @@ public static function serviceFactory(
2626
2727 // Current request doesn't exist in unit tests, in which case we'll fall back to English.
2828 if (null !== $ requestStack ->getCurrentRequest ()) {
29- // Use lang from the request or the session.
30- $ queryLang = $ requestStack -> getCurrentRequest ()-> query -> get ( ' uselang ' );
31- $ session = $ requestStack -> getSession () ;
32- $ sessionLang = $ session -> get ( ' lang ' );
33- if (! empty ( $ queryLang)) {
34- $ useLang = $ queryLang;
35- } elseif (! empty ( $ sessionLang )) {
36- $ useLang = $ sessionLang ;
29+ $ currentRequest = $ requestStack -> getCurrentRequest ();
30+ // Use lang from the 'lang' query parameter or the 'lang' session variable.
31+ $ queryLang = false ;
32+ if ( $ currentRequest -> query -> has ( ' uselang ' )) {
33+ $ queryLang = $ currentRequest -> query -> has ( ' uselang ' );
34+ if (! empty ( $ queryLang)) {
35+ $ useLang = $ queryLang ;
36+ }
3737 }
38-
39- // Save the language to the session.
40- if ($ session ->get ('lang ' ) !== $ useLang ) {
41- $ session ->set ('lang ' , $ useLang );
38+ $ sessionLang = false ;
39+ if ($ currentRequest ->hasSession ()) {
40+ $ session = $ currentRequest ->getSession ();
41+ $ sessionLang = $ session ->get ('lang ' );
42+ if (!empty ($ sessionLang )) {
43+ $ useLang = $ sessionLang ;
44+ }
45+ // Save the language to the session.
46+ if ($ session ->get ('lang ' ) !== $ useLang ) {
47+ $ session ->set ('lang ' , $ useLang );
48+ }
4249 }
4350 }
4451
0 commit comments