Provisional revert r106573, r106559: may be the wrong thing to do, and should probabl...
authorBrion Vibber <brion@users.mediawiki.org>
Tue, 20 Dec 2011 21:24:06 +0000 (21:24 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Tue, 20 Dec 2011 21:24:06 +0000 (21:24 +0000)
includes/parser/CoreParserFunctions.php
languages/Language.php

index 6f1bb50..cd5e0a5 100644 (file)
@@ -604,15 +604,21 @@ class CoreParserFunctions {
         * Gives language names.
         * @param $parser Parser
         * @param $code String  Language code
-        * @param $inLanguage String  Language code
+        * @param $language String  Language code
         * @return String
         */
-       static function language( $parser, $code = '', $inLanguage = '' ) {
+       static function language( $parser, $code = '', $language = '' ) {
+               global $wgContLang;
                $code = strtolower( $code );
-               # default to native language name
-               $inLanguage = $inLanguage !== '' ? strtolower( $inLanguage ) : $code;
-               $names = Language::getTranslatedLanguageNames( $inLanguage );
-               return isset( $names[$code] ) ? $names[$code] : wfBCP47( $code );
+               $language = strtolower( $language );
+
+               if ( $language !== '' ) {
+                       $names = Language::getTranslatedLanguageNames( $language );
+                       return isset( $names[$code] ) ? $names[$code] : wfBCP47( $code );
+               }
+
+               $lang = $wgContLang->getLanguageName( $code );
+               return $lang !== '' ? $lang : wfBCP47( $code );
        }
 
        /**
index 2eb66aa..9b201c8 100644 (file)
@@ -682,12 +682,8 @@ class Language {
                $names = array();
                wfRunHooks( 'LanguageGetTranslatedLanguageNames', array( &$names, $code ) );
 
-               foreach ( self::getLanguageNames() as $code2 => $name ) {
-                       # Prefer own MediaWiki native name,
-                       # for other names just add if not added through the hook
-                       if ( $code === $code2 || !isset( $names[$code2] ) ) {
-                               $names[$code2] = $name;
-                       }
+               foreach ( self::getLanguageNames() as $code => $name ) {
+                       if ( !isset( $names[$code] ) ) $names[$code] = $name;
                }
 
                return $names;