From 15faf878e1e8313b8881a75ea65fe8ab80ed7698 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niklas=20Laxstr=C3=B6m?= Date: Fri, 31 Dec 2010 18:18:57 +0000 Subject: [PATCH] New method for making it easier for developers to get localised language names. For now the core itself doesn't provide those, but extension can use the hook to provide them. Callers should not except full coverage in every language. --- docs/hooks.txt | 4 ++++ languages/Language.php | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/docs/hooks.txt b/docs/hooks.txt index ea09f90a2d..d166a2442d 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -992,6 +992,10 @@ Use to define aliases of special pages names depending of the language $specialPageAliases: associative array of magic words synonyms $lang: laguage code (string) +'LanguageGetTranslatedLanguageNames': Provide translated language names. +&$names: array of language code => language name +$code language of the preferred translations + 'LinkBegin': Used when generating internal and interwiki links in Linker::link(), before processing starts. Return false to skip default proces- sing and return $ret. See documentation for Linker::link() for details on the diff --git a/languages/Language.php b/languages/Language.php index 30093b2877..0526f35c88 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -487,6 +487,25 @@ class Language { return $names; } + /** + * Get translated language names. This is done on best effort and + * by default this is exactly the same as Language::getLanguageNames. + * The CLDR extension provides translated names. + * @param $code String Language code. + * @return Array language code => language name + * @since 1.18.0 + */ + public static function getTranslatedLanguageNames( $code ) { + $names = array(); + wfRunHooks( 'LanguageGetTranslatedLanguageNames', array( &$names, $code ) ); + + foreach ( self::getLanguageNames() as $code => $name ) { + if ( !isset( $names[$code] ) ) $names[$code] = $name; + } + + return $names; + } + /** * Get a message from the MediaWiki namespace. * -- 2.20.1