Jarry1250 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/156131

Change subject: Create TranslateSvgUtils::fetchLanguageName()
......................................................................

Create TranslateSvgUtils::fetchLanguageName()

Wrapper function providing a more sensible fallback chain than
Language::fetchlanguageName and integrating our own interpretation of
the "fallback" language code.

Change-Id: Ib1db640b46912fab7e417d98f429846a5e456e87
---
M SVGFile.php
M TranslateSvgUtils.php
2 files changed, 26 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/TranslateSvg 
refs/changes/31/156131/1

diff --git a/SVGFile.php b/SVGFile.php
index e43e92f..a0b15f6 100644
--- a/SVGFile.php
+++ b/SVGFile.php
@@ -465,9 +465,9 @@
                                        $switch->appendChild( $newTextTag );
                                }
 
-                               $langName = ( $language === 'fallback' ) ?
-                                       'fallback' : 
Language::fetchLanguageName( $language );
-                               if ( in_array( $language, $currentLanguages ) ) 
{
+                               // To have got this far, we must have either 
updated or started a new language
+                               $langName = 
TranslateSvgUtils::fetchLanguageName( $language, $this->fallbackLanguage );
+                               if ( in_array( $language, $currentLanguages ) 
|| $language == 'fallback' ) {
                                        $expanded[] = $langName;
                                } else {
                                        $started[] = $langName;
diff --git a/TranslateSvgUtils.php b/TranslateSvgUtils.php
index f9e1f87..3dabc7d 100644
--- a/TranslateSvgUtils.php
+++ b/TranslateSvgUtils.php
@@ -369,6 +369,29 @@
        }
 
        /**
+        * Implement our own wrapper around Language::fetchLanguageName, 
providing a more sensible
+        * fallback chain and our own interpretation of the "fallback" language 
code.
+        *
+        * @param string $langCode Language code (e.g. en-gb, fr)
+        * @param string $fallbackLanguage Code of the language for which the 
"fallback" magic word is equivalent
+        * @return string The autonym of the language with that code (English, 
français, Nederlands)
+        */
+       public static function fetchLanguageName( $langCode, $fallbackLanguage 
) {
+               $langCode = ( $langCode === 'fallback' ) ? $fallbackLanguage : 
$langCode;
+               $langName = Language::fetchLanguageName( $langCode );
+               if ( $langName == '' ) {
+                       // Try searching for prefix only instead
+                       preg_match( '/^([a-z]+)/', $langCode, $matches );
+                       $langName = Language::fetchLanguageName( $matches[0] );
+               }
+               if ( $langName == '' ) {
+                       // Okay, seems the best we can do is return the 
language code
+                       $langName = $langCode;
+               }
+               return $langName;
+       }
+
+       /**
         * Recursively replaces $1, $2, etc. with text tags, if required. Text 
content
         * is formalised as actual text nodes
         *

-- 
To view, visit https://gerrit.wikimedia.org/r/156131
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib1db640b46912fab7e417d98f429846a5e456e87
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/TranslateSvg
Gerrit-Branch: master
Gerrit-Owner: Jarry1250 <jarry1...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to