#author("2024-12-17T11:08:46+00:00","default:iseki","iseki")
*** PHP for Google Translate [#x18dcc38]
 <?php
 $api = '....';
 $ggl = 'https://www.googleapis.com/language/translate/v2';
 
 $txt = '';
 $src = '';
 $dst = '';
 
 if (isset($_GET['text'])) $txt = htmlentities($_GET['text'], ENT_QUOTES, 'utf-8');
 if (isset($_GET['fr']))   $src = $_GET['fr'];
 if (isset($_GET['to']))   $dst = $_GET['to'];
 $osrc = $src;
 
 //
 if ($src==='auto' || empty($src)) {
        if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
                $langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
                $langs = array_reverse($langs);
                foreach($langs as $lang) {
                        $ctr = substr($lang, 0, 2);
                        if ($ctr!=$dst) {
                                $src = $ctr;
                                break;
                        }
                }
        }
        if ($src==='auto' || empty($src)) {
                if      ($dst!=='ja') $src = 'ja';
                else if ($dst!=='en') $src = 'en';
        }
 }
 
 //
 if (!empty($txt) && !empty($src) && !empty($dst) && strlen($src)==2 && strlen($dst)==2 && $src!=$dst) {
        //
        $url = $ggl.'?key='.$api.'&q='.rawurlencode($txt).'&source='.$src.'&target='.$dst;
 
        $hndl = curl_init($url);
        curl_setopt($hndl, CURLOPT_RETURNTRANSFER, true);
        $resp = curl_exec($hndl);                         
        curl_close($hndl);
 
        $decd = json_decode($resp, true);
 
        if (array_key_exists('data', $decd)) {
                echo $decd['data']['translations'][0]['translatedText'];
        }
        else {
                echo 'ERROR : Google Translate returns error!!';
                error_log('trans.php: osrc = '.$osrc.', src = '.$src.', dist = '.$dst.', text = '.$txt);
                error_log('trans.php: '.print_r($decd, true));
        }
 }
 else {
        error_log('trans.php: osrc = '.$osrc.', src = '.$src.', dist = '.$dst.', text = '.$txt);
 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS