最近做一翻译公司网站,要求加一在线翻译。之前他们要的是一个外链接,我在想要是有现成的翻译网站接口可以调用的话,这个链接也就没必要了。在网上查了下,google的在线翻译可以用,找到了相关的代码,我自己添加了一些,测试可以用。相关代码如下:
- <?php
-
-
-
-
- class Google_API_translator {
- public $url = "http://translate.google.com/translate_t" ;
- public $text = "" ;
- public $out = "" ;
- public $lang_src = "" ;
- public $lang_des = "" ;
-
- function setText( $text ){
- $this ->text = $text ;
- }
-
- function setLang( $lang_src , $lang_des ){
- $this ->lang_src = $lang_src ;
- $this ->lang_des = $lang_des ;
- }
-
- function translate() {
- $this ->out = "" ;
-
- $gphtml = $this ->postPage( $this ->url, $this ->text, $this ->lang_src, $this ->lang_des);
- $out = substr ( $gphtml , strpos ( $gphtml , "<div id=result_box dir=/"ltr/">" ));
- $out = substr ( $out , 29);
- $out = substr ( $out , 0, strpos ( $out , "</div>" ));
-
- $this ->out = $out ;
- return $this ->out;
- }
-
- function postPage( $url , $text , $lang_src , $lang_des ) {
- $html = '' ;
-
- if ( $url != "" && $text != "" && $lang_src != "" && $lang_des != "" ) {
- $ch = curl_init( $url );
- curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch , CURLOPT_HEADER, 1);
- curl_setopt($ch , CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch , CURLOPT_TIMEOUT, 15);
-
- $fields = array ( 'hl=zh-CN' , 'langpair=' . $lang_src . '|' . $lang_des , 'ie=UTF-8' , 'text=' .urlencode(mb_convert_encoding( $text , 'UTF-8' , 'GB2312' )));
- curl_setopt($ch , CURLOPT_POST, 1);
- curl_setopt($ch , CURLOPT_POSTFIELDS, implode( '&' , $fields ));
-
- $html = curl_exec( $ch );
- if (curl_errno( $ch )) $html = "" ;
- curl_close ($ch );
- }
- return $html ;
- }
- }
-
-
- ?>
原始代码地址:
测试结果:
显示结果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google AJAX Language API - Basic Translation</title>
</head>
<body>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("language", "1");
function initialize() {
google.language.translate("dddd", "zh-CN", "en", function(result) {
if (!result.error) {
var container = document.getElementById("translation");
container.innerHTML = result.translation;
}
});
}
google.setOnLoadCallback(initialize);
</script>
<div id="translation"></div>
</body>
</html>