Translate extension for MediaWiki
 
Loading...
Searching...
No Matches
TranslateLogFormatter.php
Go to the documentation of this file.
1<?php
12
16class TranslateLogFormatter extends LogFormatter {
17 public function getMessageParameters() {
18 $params = parent::getMessageParameters();
19
20 $type = $this->entry->getFullType();
21
22 if ( $type === 'translationreview/message' ) {
23 $targetPage = $this->makePageLink(
24 $this->entry->getTarget(),
25 [ 'oldid' => $params[3] ]
26 );
27
28 $params[2] = Message::rawParam( $targetPage );
29 } elseif ( $type === 'translationreview/group' ) {
30 /*
31 * - 3: language code
32 * - 4: label of the message group
33 * - 5: old state
34 * - 6: new state
35 */
36
37 $uiLanguage = $this->context->getLanguage();
38 $language = $params[3];
39
40 // @phan-suppress-next-line SecurityCheck-DoubleEscaped Mixed plaintext/html mode
41 $targetPage = $this->makePageLinkWithText(
42 $this->entry->getTarget(),
43 $params[4],
44 [ 'language' => $language ]
45 );
46
47 // @phan-suppress-next-line SecurityCheck-XSS Unlikely. Positive only if language code & mg label are bad
48 $params[2] = Message::rawParam( $targetPage );
49 $params[3] = Utilities::getLanguageName( $language, $uiLanguage->getCode() );
50 $params[5] = $this->formatStateMessage( $params[5] );
51 $params[6] = $this->formatStateMessage( $params[6] );
52 } elseif ( $type === 'translatorsandbox/rejected' ) {
53 // No point linking to the user page which cannot have existed
54 $params[2] = $this->entry->getTarget()->getText();
55 } elseif ( $type === 'translatorsandbox/promoted' ) {
56 // Gender for the target
57 $params[3] = User::newFromId( $params[3] )->getName();
58 }
59
60 return $params;
61 }
62
63 protected function formatStateMessage( $value ) {
64 $message = $this->msg( "translate-workflow-state-$value" );
65
66 return $message->isBlank() ? $value : $message->text();
67 }
68
76 protected function makePageLinkWithText(
77 ?Title $title, $text, array $parameters = []
78 ) {
79 if ( !$this->plaintext ) {
80 $link = $this->getLinkRenderer()->makeLink( $title, $text, [], $parameters );
81 } else {
82 $target = '***';
83 if ( $title instanceof Title ) {
84 $target = $title->getPrefixedText();
85 }
86 $link = "[[$target|$text]]";
87 }
88
89 return $link;
90 }
91}
Essentially random collection of helper functions, similar to GlobalFunctions.php.
Definition Utilities.php:30
Class for formatting Translate logs.
makePageLinkWithText(?Title $title, $text, array $parameters=[])