Passed
Push — master ( c6dd2c...0efc01 )
by Maurício
02:43
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
 * Defines the localization helper infrastructure of the library.
4
 */
5
6
declare(strict_types=1);
7
8
namespace PhpMyAdmin\SqlParser;
9
10
use PhpMyAdmin\MoTranslator\Loader;
11
use function class_exists;
12
13
class Translator
14
{
15
    /**
16
     * The MoTranslator loader object.
17
     *
18
     * @var Loader
19
     */
20
    private static $loader;
21
22
    /**
23
     * The MoTranslator translator object.
24
     *
25
     * @var \PhpMyAdmin\MoTranslator\Translator
26
     */
27
    private static $translator;
28
29
    /**
30
     * Loads translator.
31
     */
32 544
    public static function load()
33
    {
34 544
        if (self::$loader === null) {
35
            // Create loader object
36 16
            self::$loader = new Loader();
37
38
            // Set locale
39 16
            self::$loader->setlocale(
40 16
                self::$loader->detectlocale()
41
            );
42
43
            // Set default text domain
44 16
            self::$loader->textdomain('sqlparser');
45
46
            // Set path where to look for a domain
47 16
            self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
48
        }
49
50 544
        if (self::$translator !== null) {
51 536
            return;
52
        }
53
54
        // Get translator
55 16
        self::$translator = self::$loader->getTranslator();
56 16
    }
57
58
    /**
59
     * Translates a string.
60
     *
61
     * @param string $msgid String to be translated
62
     *
63
     * @return string translated string (or original, if not found)
64
     */
65 544
    public static function gettext($msgid)
66
    {
67 544
        if (! class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) {
68
            return $msgid;
69
        }
70
71 544
        self::load();
72
73 544
        return self::$translator->gettext($msgid);
74
    }
75
}
76