summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php')
-rw-r--r--MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php46
1 files changed, 22 insertions, 24 deletions
diff --git a/MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php b/MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php
index 00b25f7f..fb95bbc3 100644
--- a/MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php
+++ b/MLEB/Translate/src/Statistics/ActiveLanguagesSpecialPage.php
@@ -6,8 +6,10 @@ namespace MediaWiki\Extension\Translate\Statistics;
use Config;
use Html;
use HtmlArmor;
+use Language;
use LinkBatch;
use MediaWiki\Config\ServiceOptions;
+use MediaWiki\Extension\Translate\Utilities\ConfigHelper;
use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\Logger\LoggerFactory;
use ObjectCache;
@@ -33,11 +35,14 @@ class ActiveLanguagesSpecialPage extends SpecialPage {
private $langNameUtils;
/** @var ILoadBalancer */
private $loadBalancer;
+ /** @var ConfigHelper */
+ private $configHelper;
+ /** @var Language */
+ private $contentLanguage;
/** @var int Cutoff time for inactivity in days */
private $period = 180;
public const CONSTRUCTOR_OPTIONS = [
- 'TranslateAuthorBlacklist',
'TranslateMessageNamespaces',
];
@@ -45,13 +50,17 @@ class ActiveLanguagesSpecialPage extends SpecialPage {
Config $config,
TranslatorActivity $translatorActivity,
LanguageNameUtils $langNameUtils,
- ILoadBalancer $loadBalancer
+ ILoadBalancer $loadBalancer,
+ ConfigHelper $configHelper,
+ Language $contentLanguage
) {
parent::__construct( 'SupportedLanguages' );
$this->options = new ServiceOptions( self::CONSTRUCTOR_OPTIONS, $config );
$this->translatorActivity = $translatorActivity;
$this->langNameUtils = $langNameUtils;
$this->loadBalancer = $loadBalancer;
+ $this->configHelper = $configHelper;
+ $this->contentLanguage = $contentLanguage;
}
protected function getGroupName() {
@@ -205,28 +214,10 @@ class ActiveLanguagesSpecialPage extends SpecialPage {
}
protected function filterUsers( array $users, string $code ): array {
- $exclusionList = $this->options->get( 'TranslateAuthorBlacklist' );
-
foreach ( $users as $index => $user ) {
$username = $user[TranslatorActivityQuery::USER_NAME];
- # We do not know the group
- $hash = "#;$code;$username";
-
- $excluded = false;
- foreach ( $exclusionList as $rule ) {
- [ $type, $regex ] = $rule;
-
- if ( preg_match( $regex, $hash ) ) {
- if ( $type === 'white' ) {
- $excluded = false;
- break;
- } else {
- $excluded = true;
- }
- }
- }
-
- if ( $excluded ) {
+ // We do not know the group
+ if ( $this->configHelper->isAuthorExcluded( '#', $code, $username ) ) {
unset( $users[$index] );
}
}
@@ -235,19 +226,26 @@ class ActiveLanguagesSpecialPage extends SpecialPage {
}
protected function outputLanguageCloud( array $languages, array $names ) {
+ global $wgTranslateDocumentationLanguageCode;
+
$out = $this->getOutput();
$out->addHTML( '<div class="tagcloud autonym">' );
foreach ( $languages as $k => $v ) {
$name = $names[$k];
+ $langAttribute = $k;
$size = round( log( $v ) * 20 ) + 10;
+ if ( $langAttribute === $wgTranslateDocumentationLanguageCode ) {
+ $langAttribute = $this->contentLanguage->getHtmlCode();
+ }
+
$params = [
'href' => $this->getPageTitle( $k )->getLocalURL(),
'class' => 'tag',
'style' => "font-size:$size%",
- 'lang' => $k,
+ 'lang' => $langAttribute,
];
$tag = Html::element( 'a', $params, $name );
@@ -267,7 +265,7 @@ class ActiveLanguagesSpecialPage extends SpecialPage {
$statsTable = new StatsTable();
// List users in descending order by number of translations in this language
- usort( $userStats, function ( $a, $b ) {
+ usort( $userStats, static function ( $a, $b ) {
return -(
$a[TranslatorActivityQuery::USER_TRANSLATIONS]
<=>