Passed
Push — master ( 1f7653...448c92 )
by William
22:50
created

Translator::load()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 24
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 9
nc 4
nop 0
dl 0
loc 24
ccs 10
cts 10
cp 1
crap 3
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpMyAdmin\SqlParser;
6
7
use PhpMyAdmin\MoTranslator\Loader;
8
9
use function class_exists;
10
11
/**
12
 * Defines the localization helper infrastructure of the library.
13
 */
14
class Translator
15
{
16
    /**
17
     * The MoTranslator loader object.
18
     *
19
     * @var Loader
20
     */
21
    private static $loader;
22
23
    /**
24
     * The MoTranslator translator object.
25
     *
26
     * @var \PhpMyAdmin\MoTranslator\Translator
27
     */
28
    private static $translator;
29
30
    /**
31
     * Loads translator.
32
     *
33
     * @return void
34
     */
35 628
    public static function load()
36
    {
37 628
        if (self::$loader === null) {
38
            // Create loader object
39 16
            self::$loader = new Loader();
40
41
            // Set locale
42 16
            self::$loader->setlocale(
43 16
                self::$loader->detectlocale()
44
            );
45
46
            // Set default text domain
47 16
            self::$loader->textdomain('sqlparser');
48
49
            // Set path where to look for a domain
50 16
            self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
51
        }
52
53 628
        if (self::$translator !== null) {
54 624
            return;
55
        }
56
57
        // Get translator
58 16
        self::$translator = self::$loader->getTranslator();
59
    }
60
61
    /**
62
     * Translates a string.
63
     *
64
     * @param string $msgid String to be translated
65
     *
66
     * @return string translated string (or original, if not found)
67
     */
68 628
    public static function gettext($msgid)
69
    {
70 628
        if (! class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) {
71
            return $msgid;
72
        }
73
74 628
        self::load();
75
76 628
        return self::$translator->gettext($msgid);
77
    }
78
}
79