利用谷歌 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实现多张图片上传加水印技巧
Apr 18 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
Laravel用户授权系统的使用方法示例
Sep 16 PHP
php文件包含的几种方式总结
Sep 19 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP简单遍历对象示例
2016/09/28 PHP
Javascript的闭包
2009/12/31 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python程序控制NAO机器人行走
2019/04/29 Python
python开发游戏的前期准备
2019/05/05 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Python常用编译器原理及特点解析
2020/03/23 Python
python缩进长度是否统一
2020/08/02 Python
python 绘制国旗的示例
2020/09/27 Python
加拿大探亲邀请信
2014/01/28 职场文书
八年级数学教学反思
2014/01/31 职场文书
全国文明单位申报材料
2014/05/31 职场文书
工资收入证明
2014/10/07 职场文书
小学科学教学计划
2015/01/21 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
人事聘任通知
2015/04/21 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python