22 global $wgTranslateValidationExclusionFile;
23 return $wgTranslateValidationExclusionFile;
26 public function getTranslateAuthorExclusionList(): array {
27 global $wgTranslateAuthorExclusionList;
28 return $wgTranslateAuthorExclusionList;
31 public function getDisabledTargetLanguages(): array {
32 global $wgTranslateDisabledTargetLanguages;
33 return $wgTranslateDisabledTargetLanguages;
46 ?
string &$reason =
null
48 $globalDisabledReason = null;
49 $groupId = $group->
getId();
52 strtok( $groupId,
'-' ),
56 $disabledLanguages = $this->getDisabledTargetLanguages();
57 foreach ( $checks as $check ) {
58 if ( isset( $disabledLanguages[$check][$languageCode] ) ) {
59 $globalDisabledReason = $disabledLanguages[$check][$languageCode];
66 $isLanguageDisabled = $groupLanguages === MessageGroup::DEFAULT_LANGUAGES
67 ? $globalDisabledReason !== null
68 : !array_key_exists( $languageCode, $groupLanguages );
71 if ( $isLanguageDisabled ) {
72 $reason = $globalDisabledReason;
75 return $isLanguageDisabled;
78 public function isAuthorExcluded(
string $groupId,
string $languageCode,
string $username ): bool {
79 $hash =
"$groupId;$languageCode;$username";
80 $authorExclusionList = $this->getTranslateAuthorExclusionList();
83 foreach ( $authorExclusionList as $rule ) {
84 [ $type, $regex ] = $rule;
86 if ( preg_match( $regex, $hash ) ) {
87 if ( $type ===
'include' ) {