Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 9
I18n
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 9
 run
0.00% covered (danger)
0.00%
0 / 1
6
0.00% covered (danger)
0.00%
0 / 9
<?php
declare( strict_types = 1 );
namespace Wikimedia\Parsoid\Wt2Html\PP\Processors;
use Wikimedia\Parsoid\Config\Env;
use Wikimedia\Parsoid\DOM\Element;
use Wikimedia\Parsoid\DOM\Node;
use Wikimedia\Parsoid\Utils\DOMCompat;
use Wikimedia\Parsoid\Utils\DOMDataUtils;
use Wikimedia\Parsoid\Utils\DOMUtils;
use Wikimedia\Parsoid\Wt2Html\Wt2HtmlDOMProcessor;
class I18n implements Wt2HtmlDOMProcessor {
    /**
     * @inheritDoc
     */
    public function run(
        Env $env, Node $root, array $options = [], bool $atTopLevel = false
    ): void {
        '@phan-var Element|DocumentFragment $root';  // @var Element|DocumentFragment $root
        $spans = DOMCompat::querySelectorAll( $root, 'span[typeof~="mw:I18n"]' );
        foreach ( $spans as $span ) {
            DOMUtils::removeTypeOf( $span, 'mw:I18n' );
            $dp = DOMDataUtils::getDataParsoid( $span );
            $i18n = $dp->tmp->i18n;
            $msg = "Error: {$i18n['key']}";
            // $msg = wfMessage( $i18n['key'], ...( $i18n['params'] ?? [] ) )->text();
            $span->appendChild(
                $span->ownerDocument->createTextNode( $msg )
            );
        }
    }
}