Mwalker has submitted this change and it was merged.

Change subject: (bug 49354) New config variable: $wgNoticeUseLanguageConversion
......................................................................


(bug 49354) New config variable: $wgNoticeUseLanguageConversion

This setting disables variant languages and use an automatically
converted version of banners fetched from their parent language
(zh for zh-cn, for example) instead.

Bug: 49354
Change-Id: I16292800b857c681e0ed54a221cd4c4e5def91b5
---
M CentralNotice.php
M includes/BannerMessage.php
M includes/BannerRenderer.php
3 files changed, 23 insertions(+), 4 deletions(-)

Approvals:
  Mwalker: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/CentralNotice.php b/CentralNotice.php
index b157a62..575abe7 100644
--- a/CentralNotice.php
+++ b/CentralNotice.php
@@ -257,6 +257,10 @@
 // Whether to use the Translation extension for banner message translation
 $wgNoticeUseTranslateExtension = false;
 
+// Whether to disable variant languages and use an automatically converted 
version of banners
+// fetched from their parent language (zh for zh-cn, for example) instead.
+$wgNoticeUseLanguageConversion = false;
+
 // When using the group review feature of translate; this will be the 
namespace ID for the banner
 // staging area -- ie: banners here are world editable and will not be moved 
to the MW namespace
 // until they are in @ref $wgNoticeTranslateDeployStates
diff --git a/includes/BannerMessage.php b/includes/BannerMessage.php
index 9e16186..92e5341 100644
--- a/includes/BannerMessage.php
+++ b/includes/BannerMessage.php
@@ -63,7 +63,12 @@
        }
 
        function toHtml( IContextSource $context ) {
-               return $context->msg( $this->getDbKey() )->inLanguage( 
$context->getLanguage() )->text();
+               global $wgNoticeUseLanguageConversion;
+               $lang = $context->getLanguage();
+               if ( $wgNoticeUseLanguageConversion && 
$lang->getParentLanguage() ) {
+                       $lang = $lang->getParentLanguage();
+               }
+               return $context->msg( $this->getDbKey() )->inLanguage( $lang 
)->text();
        }
 
        /**
diff --git a/includes/BannerRenderer.php b/includes/BannerRenderer.php
index 6b300f8..ec33781 100644
--- a/includes/BannerRenderer.php
+++ b/includes/BannerRenderer.php
@@ -95,10 +95,20 @@
         * FIXME: "->inLanguage( $context->getLanguage() )" is necessary due to 
a bug in DerivativeContext
         */
        function toHtml() {
-               $bannerHtml = $this->context->msg( $this->banner->getDbKey() 
)->inLanguage( $this->context->getLanguage() )->text();
-               $bannerHtml .= $this->getResourceLoaderHtml();
+               global $wgNoticeUseLanguageConversion;
+               $parentLang = $lang = $this->context->getLanguage();
+               if ( $wgNoticeUseLanguageConversion && 
$lang->getParentLanguage() ) {
+                       $parentLang = $lang->getParentLanguage();
+               }
 
-               return $this->substituteMagicWords( $bannerHtml );
+               $bannerHtml = $this->context->msg( $this->banner->getDbKey() 
)->inLanguage( $parentLang )->text();
+               $bannerHtml .= $this->getResourceLoaderHtml();
+               $bannerHtml = $this->substituteMagicWords( $bannerHtml );
+
+               if ( $wgNoticeUseLanguageConversion ) {
+                       $bannerHtml = $parentLang->getConverter()->convertTo( 
$bannerHtml, $lang->getCode() );
+               }
+               return $bannerHtml;
        }
 
        function getPreloadJs() {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I16292800b857c681e0ed54a221cd4c4e5def91b5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Liangent <[email protected]>
Gerrit-Reviewer: Liangent <[email protected]>
Gerrit-Reviewer: Mwalker <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to