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

 更新时间:2014年06月04日 10:58:30   作者:  
这篇文章主要介绍了利用谷歌 Translate API制作自己的翻译脚本,需要的朋友可以参考下

PHP代码:

复制代码 代码如下:

#!/usr/bin/php -q
<?php
/**
 * 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('/<span/s+title/="[^>]+>([^<]+)<//span>/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 中国 ,汉译英

>>>

相关文章

  • Symfony2函数用法实例分析

    Symfony2函数用法实例分析

    这篇文章主要介绍了Symfony2函数用法,结合实例形式分析了Symfony函数的调用及数据库操作的相关技巧,需要的朋友可以参考下
    2016-03-03
  • 老生常谈PHP面向对象之标识映射

    老生常谈PHP面向对象之标识映射

    下面小编就为大家带来一篇老生常谈PHP面向对象之标识映射。小编觉得挺不错的。现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • IIS6.0 开启Gzip方法及PHP Gzip函数分享

    IIS6.0 开启Gzip方法及PHP Gzip函数分享

    因为在做一个项目,项目里面服务器主要提供数据,但是数据多了文件就大了,比较浪费流量和时间,我们便用Gzip来处理。我在本机上是apache,服务器上是IIS6.0,用的是php,那么我就在这里分享一下。
    2014-06-06
  • php切割页面div内容的实现代码分享

    php切割页面div内容的实现代码分享

    今天在百度知道看到一个关于php获取DIV内容的问题,做了一晚,终于是做出来了
    2012-07-07
  • PHP环境搭建(php+Apache+mysql)

    PHP环境搭建(php+Apache+mysql)

    这篇文章主要为大家详细介绍了PHP环境搭建,包括php、Apache、mysql环境安装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • php web环境和命令行环境下查找php.ini的位置

    php web环境和命令行环境下查找php.ini的位置

    这篇文章主要介绍了php web环境和命令行环境下如何查找php.ini的位置,需要的朋友可以参考下
    2019-07-07
  • Laravel构建即时应用的一种实现方法详解

    Laravel构建即时应用的一种实现方法详解

    这篇文章主要给大家介绍了关于Laravel构建即时应用的一种实现方法,即时通讯在我们日常的开发中经常会遇到,本文通过示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-08-08
  • 3款值得推荐的微信开发开源框架

    3款值得推荐的微信开发开源框架

    下面向大家介绍的是微信开发项目里使用的3款基于PHP的开发框架,相信一定对你的开发工作有所帮助。
    2014-10-10
  • php 判断字符串编码是utf-8 或gb2312实例

    php 判断字符串编码是utf-8 或gb2312实例

    这篇文章主要介绍了php 判断字符串编码是utf-8 或gb2312实例的相关资料,需要的朋友可以参考下
    2016-11-11
  • Yii框架数据库查询、增加、删除操作示例

    Yii框架数据库查询、增加、删除操作示例

    这篇文章主要介绍了Yii框架数据库查询、增加、删除操作,结合实例形式总结分析了Yii框架数据库查询、增加、删除相关模型与控制器使用技巧,需要的朋友可以参考下
    2019-10-10

最新评论