Completed
Pull Request — master (#106)
by Michal
06:24
created

Translator::load()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 23
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
ccs 13
cts 13
cp 1
rs 9.0856
cc 3
eloc 9
nc 4
nop 0
crap 3
1
<?php
2
3
/**
4
 * Defines the localization helper infrastructure of the library.
5
 */
6
7
namespace SqlParser;
8
9
use PhpMyAdmin\MoTranslator;
10
11
class Translator
12
{
13
    /**
14
     * The MoTranslator loader object.
15
     *
16
     * @var MoTranslator\Loader
17
     */
18
    private static $loader;
19
20
    /**
21
     * The MoTranslator translator object.
22
     *
23
     * @var MoTranslator\Translator
24
     */
25
    private static $translator;
26
27
    /**
28
     * Loads transator.
29
     */
30 87
    public static function load()
31
    {
32 87
        if (is_null(self::$loader)) {
33
            // Create loader object
34 4
            self::$loader = new MoTranslator\Loader();
35
36
            // Set locale
37 4
            self::$loader->setlocale(
38 4
                self::$loader->detectlocale()
39 4
            );
40
41
            // Set default text domain
42 4
            self::$loader->textdomain('sqlparser');
43
44
            // Set path where to look for a domain
45 4
            self::$loader->bindtextdomain('sqlparser', __DIR__ . '/../locale/');
46 4
        }
47
48 87
        if (is_null(self::$translator)) {
49
            // Get translator
50 4
            self::$translator = self::$loader->getTranslator();
51 4
        }
52 87
    }
53
54
    /**
55
     * Translates a string.
56
     *
57
     * @param string $msgid String to be translated
58
     *
59
     * @return string translated string (or original, if not found)
60
     */
61 87
    public static function gettext($msgid)
62
    {
63 87
        self::load();
64
65 87
        return self::$translator->gettext($msgid);
66
    }
67
}
68