Title.php: Support DB language in getPageViewLanguage()
authorFomafix <fomafix@googlemail.com>
Wed, 17 Feb 2016 05:27:49 +0000 (05:27 +0000)
committerFlorianschmidtwelzow <florian.schmidt.stargatewissen@gmail.com>
Thu, 18 Feb 2016 17:48:54 +0000 (17:48 +0000)
If a page language in database is set then use the current preferred variant
of this language.

Bug: T117667
Change-Id: Idfe1165346ae0068a4b73de441dc9dfa107b8e8b

includes/Title.php

index 90ac89c..c0ec97f 100644 (file)
@@ -4699,6 +4699,18 @@ class Title implements LinkTarget {
                        return $wgLang;
                }
 
+               // Checking if DB language is set
+               $dbPageLanguage = $this->getDbPageLanguageCode();
+               if ( $dbPageLanguage ) {
+                       $pageLang = wfGetLangObj( $dbPageLanguage );
+                       $variant = $pageLang->getPreferredVariant();
+                       if ( $pageLang->getCode() !== $variant ) {
+                               $pageLang = Language::factory( $variant );
+                       }
+
+                       return $pageLang;
+               }
+
                // @note Can't be cached persistently, depends on user settings.
                // @note ContentHandler::getPageViewLanguage() may need to load the
                //   content to determine the page language!