2012-12-21 105 views
0

我想翻译从客户端发送到服务器的单词。据谷歌的文档,你可以如下使用:Google的翻译API(REST)和PHP

GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world 

,它会与下面的JSON对象作出回应:

{ 
    "data": { 
     "translations": [ 
      { 
       "translatedText": "Hallo Welt" 
      } 
     ] 
    } 
} 

我在PHP中使用下列内容:

$data = file_get_contents('https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated); 
$data = json_decode($data); 
$translated = $data->translations->translatedText; 

这不起作用,但如果我使用他们的JS示例,那么我确实得到了所需的结果,因此翻译设置没问题,问题必须出现在我的PHP脚本中。

我也试过:

$data = $_GET['https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated]; 

,但无济于事。有什么建议么?

+1

它以什么方式不起作用?你有错误信息吗? – Cfreak

+0

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/translate/simple.php – underscore

+0

$ translation变量为空。 – jmarais

回答

0

我建议:

$request = 'https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated; 

var_dump($request); 

复制的字符串,以“https”开头,从这个的var_dump返回,并将其放置到一个新的Web浏览器窗口......你怎么在浏览器中找回?如果它看起来有效,那么继续下一步。如果它不起作用,那么你正在组装你的$ request请求。

$response = file_get_contents($request); 

var_dump($response); 

$ response是什么样子的?一个错误?或者它看起来像有效的JSON?如果其有效的JSON ...

$data = json_decode($response); 

var_dump($data); 

什么是$数据看起来像这里?好?任何JSON解析异常?

$translated = $data->translations->translatedText; 

var_dump($translated); 

什么是$翻译的样子?

+0

谢谢,我遵循这个,它给了正确的输出,直到'$ data = json_decode($ response);'和var_dump看起来如下:'object(stdClass)#1(1){[“data”] = > object(stdClass)#2(1){[“translations”] => array(1){[0] => object(stdClass)#3(1){[“convertedText”] => string(5) toets“}}}}',这是正确的翻译,但在'$ translated = $ data-> translations-> translatedText'之后,'它给出NULL的输出。我试过'$ translated = $ data-> translations [0] - > translatedText;'但仍然一样。所以,看起来$ data是好的,但是我怎样才能从中翻译出来的文本呢? – jmarais

+0

请输出serialize($ data) – Geremy

+0

它是:'string(132)“O:8:”stdClass“:1:{s:4:”data“; O:8:”stdClass“:1: {S:12: “翻译”;一个:1:{I 0,O:8: “stdClass的”:1:{S:14: “translatedText”; S:5: “toets”;}}}}” ' – jmarais