百度免费翻译接口


程序需要的翻译工具,要自动分割单词,如:  SourceCodeExtension  或  Event_Subscriber_Interface,为此,只能自己写代码分割一下,然后调用翻译接口.

先看效果吧.

 

然后集成到我的工具包里的效果

 

 

自己去注册,然后开通通用翻译接口,下载个 demo,就能使用了.

<?php

define("CURL_TIMEOUT", 10);
define("URL", "http://api.fanyi.baidu.com/api/trans/vip/translate");
define("APP_ID", "20212"); //APPID
define("SEC_KEY", "LKYGG");//密钥


print_r(translate(Data::string('__Event_SubscriberInterface__')->toWord(), 'en', 'zh'));


class Data {

    protected static $string = '';

    public static function string($string){

        self::$string = $string;
        return new static();

    }


    public function toWord(string $delimiter=' ') :string {
$string = self::$string; if(strpos($string, '_')  !== false ){ $string = str_replace('_', ' ', $string); } return strtolower(trim(preg_replace(['/([A-Z])/', '/\s+/'], [' ${1}', $delimiter], $string))); } } //翻译入口
function translate($query, $from, $to) { $args = array( 'q' => $query,
        'appid' => APP_ID,
        'salt' => rand(10000, 99999),
        'from' => $from,
        'to' => $to, ); $args['sign'] = buildSign($query, APP_ID, $args['salt'], SEC_KEY); $ret = call(URL, $args); $ret = json_decode($ret, true); return $ret; } //加密
function buildSign($query, $appID, $salt, $secKey) { $str = $appID . $query . $salt . $secKey; $ret = md5($str); return $ret; } //发起网络请求
function call($url, $args = null, $method = "post", $testflag = 0, $timeout = CURL_TIMEOUT, $headers = array()) { $ret = false; $i = 0; while($ret === false){ if($i > 1) break; if($i > 0){ sleep(1); } $ret = callOnce($url, $args, $method, false, $timeout, $headers); $i++; } return $ret; } function callOnce($url, $args = null, $method = "post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers = array()) { $ch = curl_init(); if($method == "post"){ $data = convert($args); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_POST, 1); }else{ $data = convert($args); if($data){ if(stripos($url, "?") > 0){ $url .= "&$data"; }else{ $url .= "?$data"; } } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(!empty($headers)){ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if($withCookie){ curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE); } $r = curl_exec($ch); curl_close($ch); return $r; } function convert(&$args) { $data = ''; if(is_array($args)){ foreach($args as $key => $val){ if(is_array($val)){ foreach($val as $k => $v){ $data .= $key . '[' . $k . ']=' . rawurlencode($v) . '&'; } }else{ $data .= "$key=" . rawurlencode($val) . "&"; } } return trim($data, "&"); } return $args; }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM