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


Posted in PHP onJune 04, 2014

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 中国 ,汉译英

>>>

PHP 相关文章推荐
Php注入点构造代码
Jun 14 PHP
php 方便水印和缩略图的图形类
May 21 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
Zend Framework前端控制器用法示例
Dec 11 PHP
php异常处理捕获错误整理
Sep 23 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 #PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 #PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 #PHP
php 批量添加多行文本框textarea一行一个
Jun 03 #PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 #PHP
php数组中包含中文的排序方法
Jun 03 #PHP
php实现文件下载实例分享
Jun 02 #PHP
You might like
PHP判断是否为空的几个函数对比
2015/04/21 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
JS小框架 fly javascript framework
2009/11/26 Javascript
js中replace的用法总结
2013/12/27 Javascript
JS实现文档加载完成后执行代码
2015/07/09 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
2016/06/16 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
浅谈python新式类和旧式类区别
2019/04/26 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
python可视化实现KNN算法
2019/10/16 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
计算机软件专业求职信
2014/06/10 职场文书
商场促销活动策划方案
2014/08/18 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
党风廉正建设责任书
2015/01/29 职场文书
汉字听写大会观后感
2015/06/12 职场文书