John Erling Blad has submitted this change and it was merged. Change subject: Make language names available in other languages. ......................................................................
Make language names available in other languages. Requires the CLDR extension for full functionality. Change-Id: I7125109c13a351147c0ea8917332d1c08da7096f --- M lib/includes/Utils.php M lib/tests/phpunit/UtilsTest.php 2 files changed, 49 insertions(+), 2 deletions(-) Approvals: John Erling Blad: Verified; Looks good to me, approved diff --git a/lib/includes/Utils.php b/lib/includes/Utils.php index d9dcf5b..9cfe4cd 100644 --- a/lib/includes/Utils.php +++ b/lib/includes/Utils.php @@ -27,8 +27,10 @@ * @ingroup WikibaseLib * * @licence GNU GPL v2+ + * @author Jeroen De Dauw < jeroended...@gmail.com > * @author Tobias Gritschacher * @author Jens Ohlig < jens.oh...@wikimedia.de > + * @author John Erling Blad < jeb...@gmail.com > */ final class Utils { @@ -56,11 +58,19 @@ * @since 0.1 * * @param string $languageCode + * @param string|null $inLanguage * * @return string */ - public static function fetchLanguageName( $languageCode ) { - $languageName = \Language::fetchLanguageName( str_replace( '_', '-', $languageCode ) ); + public static function fetchLanguageName( $languageCode, $inLanguage = null ) { + $languageCode = str_replace( '_', '-', $languageCode ); + if ( isset( $inLanguage ) ) { + $inLanguage = str_replace( '_', '-', $inLanguage ); + $languageName = \Language::fetchLanguageName( $languageCode, $inLanguage ); + } + else { + $languageName = \Language::fetchLanguageName( $languageCode ); + } if ( $languageName == '' ) { $languageName = $languageCode; } diff --git a/lib/tests/phpunit/UtilsTest.php b/lib/tests/phpunit/UtilsTest.php index 819c015..7c7d38e 100644 --- a/lib/tests/phpunit/UtilsTest.php +++ b/lib/tests/phpunit/UtilsTest.php @@ -102,4 +102,41 @@ ); } + public static function provideFetchLanguageName() { + return array( + array( // #0 + 'en', + null, + 'English' + ), + array( // #1 + 'de', + null, + 'Deutsch' + ), + array( // #2 + 'en', + 'de', + 'Englisch' + ), + array( // #3 + 'de', + 'en', + 'German' + ), + ); + } + + /** + * @dataProvider provideFetchLanguageName + */ + public function testFetchLanguageName( $lang, $in, $expected ) { + if ( $in !== null && !defined('CLDR_VERSION') ) { + $this->markTestSkipped( "CLDR extension required for full language name support" ); + } + + $name = Utils::fetchLanguageName( $lang, $in ); + $this->assertEquals( $expected, $name ); + } + } -- To view, visit https://gerrit.wikimedia.org/r/49073 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7125109c13a351147c0ea8917332d1c08da7096f Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Aude <aude.w...@gmail.com> Gerrit-Reviewer: John Erling Blad <john.b...@wikimedia.de> Gerrit-Reviewer: Tobias Gritschacher <tobias.gritschac...@wikimedia.de> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits