MymemoryTrans::main()   C
last analyzed

Complexity

Conditions 7
Paths 7

Size

Total Lines 41
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 41
rs 6.7272
c 0
b 0
f 0
cc 7
eloc 22
nc 7
nop 0
1
<?php
2
3
namespace Aitor24\Laralang\Builder;
4
5
class MymemoryTrans extends Translation
6
{
7
    /**
8
     * Get translation from mymemory API.
9
     */
10
    public function main()
11
    {
12
        $host = 'api.mymemory.translated.net';
13
14
        // Check if host is online.
15
        if ($this->checkHost($host)) {
16
17
             // Host online
18
            $urlString = urlencode($this->string);
19
            $urldata = file_get_contents("http://$host/get?q=$urlString&langpair=$this->from|$this->to");
20
            $data = json_decode($urldata, true);
21
22
            if ($data['responseStatus'] != 200) {
23
                if ($this->debug == true) {
24
                    if ($data['responseStatus'] == 403) {
25
                        $details = ($data['responseDetails']);
26
                    } else {
27
                        $details = $data['responseDetails'];
28
                    }
29
                    $this->translation = "<font style='color:red;'>Error ".$data->responseStatus.': '.$details.'</font>';
30
                }
31
32
                return;
33
            }
34
35
            // Checking if any translation provides from 24aitor to use it
36
            foreach ($data['matches']  as $match) {
37
                if ($match['last-updated-by'] == '24aitor') {
38
                    $this->translation = $match['translation'];
39
                    $this->checkSave();
40
41
                    return;
42
                }
43
            }
44
45
            $this->translation = $data['responseData']['translatedText'];
46
            $this->checkSave();
47
48
            return;
49
        }
50
    }
51
}
52