Passed
Push — master ( a6da77...d17d59 )
by William
04:24 queued 11s
created

Translator::gettext()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2.032

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 1
dl 0
loc 9
ccs 4
cts 5
cp 0.8
crap 2.032
rs 10
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 16
            );
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