Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
14 / 14 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
1 / 1 |
ResourceLoaderULSJsonMessageModule | |
100.00% |
14 / 14 |
|
100.00% |
3 / 3 |
3 | |
100.00% |
1 / 1 |
getDependencies | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
getDefinitionSummary | |
100.00% |
10 / 10 |
|
100.00% |
1 / 1 |
1 | |||
getScript | |
100.00% |
3 / 3 |
|
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 | |
10 | namespace UniversalLanguageSelector; |
11 | |
12 | use MediaWiki\ResourceLoader\Context; |
13 | use MediaWiki\ResourceLoader\Module; |
14 | use Xml; |
15 | |
16 | /** |
17 | * ResourceLoader module for client-side loading of json-based localization. |
18 | */ |
19 | class 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 | } |