Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
TranslatableBundleLogFormatter.php
1<?php
2declare( strict_types = 1 );
3
4namespace MediaWiki\Extension\Translate\MessageGroupProcessing;
5
6use LogFormatter;
8use MediaWiki\MediaWikiServices;
9use Message;
10use Title;
11
17class TranslatableBundleLogFormatter extends LogFormatter {
18 protected function getMessageParameters(): array {
19 $params = parent::getMessageParameters();
20 $legacy = $this->entry->getParameters();
21
22 $type = $this->entry->getFullType();
23 switch ( $type ) {
24 case 'pagetranslation/mark':
25 $revision = $legacy['revision'];
26
27 $targetPage = $this->makePageLink(
28 $this->entry->getTarget(),
29 [ 'oldid' => $revision ]
30 );
31
32 $params[2] = Message::rawParam( $targetPage );
33 break;
34
35 case 'pagetranslation/moveok':
36 case 'pagetranslation/movenok':
37 case 'pagetranslation/deletefnok':
38 case 'pagetranslation/deletelnok':
39 case 'messagebundle/moveok':
40 case 'messagebundle/movenok':
41 $target = $legacy['target'];
42
43 $moveTarget = $this->makePageLink( Title::newFromText( $target ) );
44 $params[3] = Message::rawParam( $moveTarget );
45 break;
46
47 case 'pagetranslation/prioritylanguages':
48 $params[3] = $legacy['force'];
49 $languages = $legacy['languages'];
50 if ( $languages !== false ) {
51 $lang = $this->context->getLanguage();
52 $inLanguage = $lang->getCode();
53
54 $languages = array_map(
55 static function ( string $code ) use ( $inLanguage ): string {
56 return Utilities::getLanguageName( trim( $code ), $inLanguage );
57 },
58 preg_split( '/,/', $languages, -1, PREG_SPLIT_NO_EMPTY )
59 );
60
61 $params[4] = $lang->listToText( $languages );
62 }
63 break;
64
65 case 'pagetranslation/associate':
66 case 'pagetranslation/dissociate':
67 $params[3] = $legacy['aggregategroup'];
68 break;
69 }
70
71 return $params;
72 }
73
74 public function getComment(): string {
75 $legacy = $this->entry->getParameters();
76 if ( isset( $legacy['reason'] ) ) {
77 $commentFormatter = MediaWikiServices::getInstance()->getCommentFormatter();
78 $comment = $commentFormatter->formatBlock( (string)$legacy['reason'] );
79
80 // No hard coded spaces thanx
81 return ltrim( $comment );
82 }
83
84 return parent::getComment();
85 }
86
87 protected function getMessageKey(): string {
88 $key = parent::getMessageKey();
89 $type = $this->entry->getFullType();
90
91 // logentry-pagetranslation-prioritylanguages-unset
92 // logentry-pagetranslation-prioritylanguages-force
93 if ( $type === 'pagetranslation/prioritylanguages' ) {
94 $params = $this->getMessageParameters();
95 if ( !isset( $params[4] ) ) {
96 $key .= '-unset';
97 } elseif ( $params['3'] === 'on' ) {
98 $key .= '-force';
99 }
100 }
101
102 return $key;
103 }
104}
Essentially random collection of helper functions, similar to GlobalFunctions.php.
Definition Utilities.php:31