• 技术文章 >php教程 >php手册

    利用谷歌 Translate API制作自己的翻译脚本

    2016-06-13 09:34:28原创1168
    PHP代码:

    复制代码 代码如下:


    #!/usr/bin/php -q
    /**
    * PHP Script For Google Translate
    * @author:Yishan Wang
    * @version:1.0.0
    */
    class Google_API_translator
    {
    public $url = "http://translate.google.com/translate_t";
    public $text = "";
    public $out = "";
    public $ip = '';
    function setText($text){
    $this->text = $text;
    }
    function translate($from='auto',$to='zh-CN'){
    $this->out = "";
    $gphtml = $this->postPage($this->url, $this->text,$from,$to);
    preg_match_all('/]+>([^<]+)/i',$gphtml,$res);
    $this->out = $res[1][0];
    return $this->out;
    }
    /*
    $from 需要翻译的语言
    $to 翻译的语言
    */
    function postPage($url, $text,$from='auto',$to='zh-CN'){
    $html ='';
    if($url != "" && $text != "") {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if(!empty($this->ip) && is_string($this->ip)){
    curl_setopt($ch, CURLOPT_INTERFACE,$this->ip);
    }
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    /*
    *hl - 界面语言,此处无用。
    *langpair - src lang to dest lang
    *ie - urlencode的编码方式?
    *text - 要翻译的文本
    */
    $fields = array('hl=zh-CN', 'langpair='.$from.'|'.$to, 'ie=UTF-8','text='.$text);
    $fields = implode('&', $fields);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$fields);
    $html = curl_exec($ch);
    if(curl_errno($ch)) $html = "";
    curl_close ($ch);
    }
    return $html;
    }
    }
    $from = !empty($_REQUEST['fromlan'])?$_REQUEST['fromlan']:'en';
    $to = !empty($_REQUEST['tolan'])?$_REQUEST['tolan']:'zh-CN';
    $keywords = "";
    for($i=1;$i<$argc;$i++){
    $keywords .= $argv[$i]." ";
    }
    $article = !empty($_REQUEST['article'])?$_REQUEST['article']:$keywords;
    $g = new Google_API_translator();
    if(isset($_REQUEST['ip']) && !empty($_REQUEST['ip']))
    {
    $g -> ip = $_REQUEST['ip'];
    }
    $article = iconv('GBK','UTF-8',$article);
    $article = str_replace('{enter}',"/r/n",$article);
    $g->setText($article);
    $g->translate($from,$to);
    echo "-----------翻译结果--------------/n";
    echo iconv('GBK','UTF-8',$g->out);
    echo "/n";
    ?>

    2、将以上内容保存名为“gtranslate”的文件中。

    3、给gtranslate添加执行权限

    chmod a+x gtranslate

    4、创建软连接

    ln -s /yourpath/gtranslate /usr/bin/gtranslate

    5、输入测试词汇:

    gtranslate Hello World


    -----------翻译结果--------------
    世界您好

    >>>

    6、做了个中英文互译的版本。

    用 gtranslate China ,英译汉

    用 gtranslate -r 中国 ,汉译英

    >>>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Translate API
    上一篇:浅谈php扩展imagick 下一篇:php生成图片缩略图的函数
    Web大前端开发直播班

    相关文章推荐

    • php操作xml• php float不四舍五入截取浮点型字符串方法总结• PHP查询登录中的sql注入• PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法• PHP MySQL开发中的一些经验
    1/1

    PHP中文网