Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
SpecificLanguageMessageLocalizer
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 msg
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare( strict_types = 1 );
4
5namespace EntitySchema\MediaWiki;
6
7use MediaWiki\Message\Message;
8use MessageLocalizer;
9
10/**
11 * @license GPL-2.0-or-later
12 */
13class SpecificLanguageMessageLocalizer implements MessageLocalizer {
14
15    private string $languageCode;
16
17    public function __construct( string $languageCode ) {
18        $this->languageCode = $languageCode;
19    }
20
21    /** @inheritDoc */
22    public function msg( $key, ...$params ): Message {
23        $message = ( new Message( $key, [] ) )->inLanguage( $this->languageCode );
24
25        if ( $params ) {
26            // we use ->params() instead of the $params constructor parameter
27            // because ->params() supports some additional calling conventions,
28            // which our callers might also have used
29            $message->params( ...$params );
30        }
31
32        return $message;
33    }
34
35}