Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
Digit2Html
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2/**
3 * Check digit transformation
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * http://www.gnu.org/copyleft/gpl.html
19 *
20 * @file
21 * @ingroup MaintenanceLanguage
22 */
23
24// @codeCoverageIgnoreStart
25require_once __DIR__ . '/../Maintenance.php';
26// @codeCoverageIgnoreEnd
27
28/**
29 * Maintenance script that check digit transformation.
30 *
31 * @ingroup MaintenanceLanguage
32 */
33class Digit2Html extends Maintenance {
34
35    /**
36     * @var string[] A list of unicode numerals is available at:
37     * https://www.fileformat.info/info/unicode/category/Nd/list.htm
38     */
39    private $mLangs = [
40        'Ar', 'As', 'Bh', 'Bo', 'Dz',
41        'Fa', 'Gu', 'Hi', 'Km', 'Kn',
42        'Ks', 'Lo', 'Ml', 'Mr', 'Ne',
43        'New', 'Or', 'Pa', 'Pi', 'Sa'
44    ];
45
46    public function __construct() {
47        parent::__construct();
48        $this->addDescription( 'Check digit transformation' );
49    }
50
51    public function execute() {
52        $languageNameUtils = $this->getServiceContainer()->getLanguageNameUtils();
53        foreach ( $this->mLangs as $code ) {
54            $filename = $languageNameUtils->getMessagesFileName( $code );
55            $this->output( "Loading language [$code] ..." );
56            unset( $digitTransformTable );
57            require_once $filename;
58            if ( !isset( $digitTransformTable ) ) {
59                $this->error( "\$digitTransformTable not found for lang: $code" );
60                continue;
61            }
62
63            $this->output( "OK\n\$digitTransformTable = [\n" );
64            foreach ( $digitTransformTable as $latin => $translation ) {
65                $htmlent = bin2hex( $translation );
66                $this->output( "'$latin' => '$translation', # &#x$htmlent;\n" );
67            }
68            $this->output( "];\n" );
69        }
70    }
71}
72
73// @codeCoverageIgnoreStart
74$maintClass = Digit2Html::class;
75require_once RUN_MAINTENANCE_IF_MAIN;
76// @codeCoverageIgnoreEnd