2012-12-21 3 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 = 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; 

: 나는 PHP에서 다음을 사용

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

이것은 작동하지 않지만 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

번역 된 $ 변수가 비어 있습니다. – 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에서 반환, 새로운 웹 브라우저 창에 배치 ? 유효하게 보이면 다음 단계로 넘어갑니다. 작동하지 않으면 $ request를 잘못 조합하고 있습니다.

$response = file_get_contents($request); 

var_dump($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) # 3 (1) {[ "translatedText"] => 문자열 (5) "객체 (stdClass) # 2 (1) {["번역 "] => 배열 toets "}}}}', 올바른 번역이지만'$ translated = $ data-> translations-> translatedText; '뒤에는 NULL 출력이 나온다. 나는 $ translated = $ data-> translations [0] -> translatedText를 시도했지만 여전히 동일하다. 그래서 $ 데이터는 괜찮은 것 같지만 어떻게 번역 된 텍스트를 가져올 수 있습니까? – jmarais

+0

serialize ($ data) – Geremy

+0

의 출력을 게시하십시오 :'string (132) 'O : 8 : "stdClass": 1 : {s : 4 : "data"; O : 8 : "stdClass": 1 : a : 1 : {0 : O : 8 : "stdClass": 1 : {14 : "translatedText"; s : 5 : "toets";}}}} " ' – jmarais