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

Reply via email to