利用谷歌 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 和 HTML
Oct 09 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
php将图片文件转换成二进制输出的方法
Jun 10 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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 var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
vuejs指令详解
2017/02/07 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
js实现查询商品案例
2020/07/22 Javascript
Python 中 list 的各项操作技巧
2017/04/13 Python
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
个人素质的自我评价分享
2013/12/16 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
秘书英文求职信
2014/04/16 职场文书
产品包装策划方案
2014/05/18 职场文书
公司口号大全
2014/06/11 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
党的群众路线调研报告
2014/11/03 职场文书
金榜题名主持词
2015/07/02 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android