Passed
Branch master (366c16)
by William
03:30
created

Translator   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Test Coverage

Coverage 93.33%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
c 1
b 0
f 0
dl 0
loc 59
rs 10
ccs 14
cts 15
cp 0.9333
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A load() 0 21 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 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