*/
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 );
}
$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;