利用谷歌 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 相关文章推荐
关于mysql 字段的那个点为是定界符
Jan 15 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
深入php数据采集的详解
Jun 02 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
php搜索文件程序分享
Oct 30 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
thinkPHP中session()方法用法详解
Dec 08 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP数据库操作三:redis用法分析
Aug 16 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP 身份证号验证函数
2009/05/07 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
Python动态加载模块的3种方法
2014/11/22 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Python 列表的清空方式
2020/01/13 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
AC Lens:购买隐形眼镜
2017/02/26 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
妇产医师自荐信
2014/01/29 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
小区文明倡议书
2014/05/16 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
求职简历自我评价2015
2015/03/10 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers