Passed
Branch master (366c16)
by William
03:30
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 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 4
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 9
rs 10
ccs 4
cts 5
cp 0.8
crap 2.032
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 transator.
31
     */
32 540
    public static function load()
33
    {
34 540
        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 540
        if (self::$translator === null) {
51
            // Get translator
52 16
            self::$translator = self::$loader->getTranslator();
53
        }
54 540
    }
55
56
    /**
57
     * Translates a string.
58
     *
59
     * @param string $msgid String to be translated
60
     *
61
     * @return string translated string (or original, if not found)
62
     */
63 540
    public static function gettext($msgid)
64
    {
65 540
        if (! class_exists('\PhpMyAdmin\MoTranslator\Loader', true)) {
66
            return $msgid;
67
        }
68
69 540
        self::load();
70
71 540
        return self::$translator->gettext($msgid);
72
    }
73
}
74