Follow-up r106559: it's better to set the preference for own MediaWiki names in Langu...
authorRobin Pepermans <robin@users.mediawiki.org>
Sun, 18 Dec 2011 17:58:47 +0000 (17:58 +0000)
committerRobin Pepermans <robin@users.mediawiki.org>
Sun, 18 Dec 2011 17:58:47 +0000 (17:58 +0000)
Also update Babel to use that function.

includes/parser/CoreParserFunctions.php
languages/Language.php

index 25278e9..6f1bb50 100644 (file)
@@ -609,21 +609,8 @@ class CoreParserFunctions {
         */
        static function language( $parser, $code = '', $inLanguage = '' ) {
                $code = strtolower( $code );
-               $inLanguage = strtolower( $inLanguage );
-
-               if( $inLanguage === $code || $inLanguage === '' ) {
-                       # Make sure the output is the same when the second parameter
-                       # is the same language
-                       global $wgContLang;
-                       $name = $wgContLang->getLanguageName( $code );
-                       if( $name !== '' ) {
-                               return $name;
-                       } else {
-                               # Try if there is a language name below
-                               $inLanguage = $code;
-                       }
-               }
-
+               # default to native language name
+               $inLanguage = $inLanguage !== '' ? strtolower( $inLanguage ) : $code;
                $names = Language::getTranslatedLanguageNames( $inLanguage );
                return isset( $names[$code] ) ? $names[$code] : wfBCP47( $code );
        }
index 9b201c8..2eb66aa 100644 (file)
@@ -682,8 +682,12 @@ class Language {
                $names = array();
                wfRunHooks( 'LanguageGetTranslatedLanguageNames', array( &$names, $code ) );
 
-               foreach ( self::getLanguageNames() as $code => $name ) {
-                       if ( !isset( $names[$code] ) ) $names[$code] = $name;
+               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;
+                       }
                }
 
                return $names;