Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
ResourceLoaderULSJsonMessageModule
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
3 / 3
3
100.00% covered (success)
100.00%
1 / 1
 getDependencies
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getDefinitionSummary
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
1 / 1
1
 getScript
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * ResourceLoader module for client-side loading of json-based localization.
4 *
5 * @file
6 * @ingroup Extensions
7 * @author Santhosh Thottingal
8 */
9
10namespace UniversalLanguageSelector;
11
12use MediaWiki\ResourceLoader\Context;
13use MediaWiki\ResourceLoader\Module;
14use Xml;
15
16/**
17 * ResourceLoader module for client-side loading of json-based localization.
18 */
19class ResourceLoaderULSJsonMessageModule extends Module {
20    /**
21     * Part of the ResourceLoader module interface.
22     * Declares the core ext.uls.i18n module as a dependency.
23     * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
24     * @param Context|null $context
25     * @return string[] Module names.
26     */
27    public function getDependencies( Context $context = null ) {
28        return [ 'ext.uls.i18n' ];
29    }
30
31    /**
32     * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
33     * @param Context $context
34     * @return array
35     */
36    public function getDefinitionSummary( Context $context ) {
37        $code = $context->getLanguage();
38        $fileHashes = array_map(
39            [ __CLASS__, 'safeFileHash' ],
40            ULSJsonMessageLoader::getFilenames( $code )
41        );
42
43        $summary = parent::getDefinitionSummary( $context );
44        $summary[] = [
45            'fileHashes' => $fileHashes
46        ];
47        return $summary;
48    }
49
50    /**
51     * Get the message strings for the current UI language. Uses
52     * mw.uls.loadLocalization to register them on the frontend.
53     * @suppress PhanParamSignatureRealMismatchParamType, UnusedSuppression -- T308443
54     * @param Context $context
55     * @return string JavaScript code.
56     */
57    public function getScript( Context $context ) {
58        $code = $context->getLanguage();
59        $params = [ $code, ULSJsonMessageLoader::getMessages( $code ) ];
60
61        return Xml::encodeJsCall( 'mw.uls.loadLocalization', $params );
62    }
63}