利用谷歌 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之第七天
Oct 09 PHP
adodb与adodb_lite之比较
Dec 31 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
使用图灵api创建微信聊天机器人
Jul 23 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
微信支付开发维权通知实例
Jul 12 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 ajax 分页类代码
2008/11/13 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
Jquery获取radio选中值实例总结
2019/01/17 jQuery
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
Python中删除文件的程序代码
2011/03/13 Python
python比较2个xml内容的方法
2015/05/11 Python
django之常用命令详解
2016/06/30 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
python3判断IP地址的方法
2021/03/04 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL