HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/360.naniguide.com/backend/ajax/translate_deepl.php
<?php
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE & ~E_DEPRECATED);
ob_start();
session_start();
if((($_SERVER['SERVER_ADDR']==$_SESSION['demo_server_ip']) && ($_SERVER['REMOTE_ADDR']!=$_SESSION['demo_developer_ip']) && ($_SESSION['id_user']==$_SESSION['demo_user_id'])) || ($_SESSION['svt_si']!=session_id())) {
    die();
}
require_once("../../db/connection.php");
require_once("../functions.php");
session_write_close();
$language = $_POST['language'];
$text = $_POST['text'];
$settings = get_settings();
$deepl_api_key = $settings['deepl_api_key'];
if(!empty($deepl_api_key)) {
    if(substr($deepl_api_key, -3) === ':fx') {
        $deepl_api_domain = "api-free.deepl.com";
    } else {
        $deepl_api_domain = "api.deepl.com";
    }
}
$lang_dest = map_language_code_deepl($language);
if(!empty($lang_dest)) {
    try {
        $data = array(
            "text" => array($text),
            "target_lang" => $lang_dest
        );
        $payload = json_encode($data);
        $ch = curl_init('https://'.$deepl_api_domain.'/v2/translate');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            "Authorization: DeepL-Auth-Key $deepl_api_key",
            "Content-Type: application/json"
        ));
        $response = curl_exec($ch);
        curl_close($ch);
        $result = json_decode($response, true);
        $translatedText = $result['translations'][0]['text'];
        ob_end_clean();
        echo ltrim($translatedText,"</p>");
    } catch (Exception $e) {
        ob_end_clean();
        echo '';
    }
}
exit;

function map_language_code_deepl($code) {
    $languageMapping = [
        'zh_CN' => 'ZH',
        'zh_HK' => 'ZH',
        'zh_TW' => 'ZH',
        'cs_CZ' => 'CS',
        'nl_NL' => 'NL',
        'en_US' => 'EN-US',
        'fr_FR' => 'FR',
        'de_DE' => 'DE',
        'hu_HU' => 'HU',
        'ko_KR' => 'KO',
        'id_ID' => 'ID',
        'it_IT' => 'IT',
        'ja_JP' => 'JA',
        'pl_PL' => 'PL',
        'pt_BR' => 'PT-BR',
        'pt_PT' => 'PT-PT',
        'es_ES' => 'ES',
        'ro_RO' => 'RO',
        'ru_RU' => 'RU',
        'sv_SE' => 'SV',
        'tr_TR' => 'TR',
    ];
    return isset($languageMapping[$code]) ? $languageMapping[$code] : '';
}