Начало Новини Маркет Проекти Форум ИТ Работа Уроци Скриптове WiFi точки Още Вход


Използване на GoogleTranslate за преводи

От Mutatos / 18.08.2009 18:01
Размер на шрифта: A | A | A

Това е работещ клас за използването на GoogleTranslate и интегрирането на преводите в собствена апликация с PHP.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
class GoogleTranslate {

   
/**
     * The URL to Google Translate
     *
@var const
     */
   
const GOOGLE_ENDPOINT_URL = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0__QUERY__&langpair=__LANGUAGE__';

   
/**
     * Translate text
     *
     *
@param array $text
     *
@param string $src_lang
     *
@param string $dest_lang
     *
@return array
     */
   
public static function translate($src_texts = array (), $src_lang, $dest_lang) {
       
$lang_pair = $src_lang . '|' . $dest_lang;
       
       
$src_texts_query = "";
       
foreach ($src_texts as $src_text) {
           
$src_texts_query .= "&q=" . urlencode($src_text);
       
}
       
       
$url = str_replace(
           
array (
               
'__QUERY__',
               
'__LANGUAGE__'
           
)
            ,
array (
               
$src_texts_query,
               
urlencode($lang_pair)
            )
, self :: GOOGLE_ENDPOINT_URL
       
);
       
$ch = curl_init();
       
curl_setopt($ch, CURLOPT_URL, $url);
       
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       
curl_setopt($ch, CURLOPT_REFERER, "TransAnalytics v. 1.0.0 (compatible; MSIE 6.0; Windows NT 5.0)");
       
$body = curl_exec($ch);
       
curl_close($ch);
       
       
$json = json_decode($body, true);

       
if ($json['responseStatus'] != 200) {
           
return false;
       
}
       
       
$results = $json['responseData'];
       
$return_array = array ();
       
if(count($results) > 1){
           
foreach ($results as $result) {
               
if ($result['responseStatus'] == 200) {
                   
$return_array[] = $result['responseData']['translatedText'];
               
} else {
                   
$return_array[] = false;
               
}
            }
        }
       
else{
           
$return_array[] = $results['translatedText'];
       
}
       
       
return $return_array;
   
}
}
?>

Използване на класа:

CODE
1
2
3
4
5
<?php
$kws = array('Word1', 'Word2', 'Word3');
$translate = GoogleTranslate :: translate($kws, 'en', 'de');
var_dump($translate);
?>

Статистика
Погледнат: пъти
Гласове: --
Оценка:
Действие
 



myTech.bg © 2004 - 2011 | Контакти | За реклама