Passed
Push — master ( c6dd2c...0efc01 )
by Maurício
02:43
created

Translator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Test Coverage

Coverage 93.75%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 61
ccs 15
cts 16
cp 0.9375
rs 10
c 0
b 0
f 0
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A load() 0 24 3
A gettext() 0 9 2
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