2016-02-22 4 views
2

Я использую https://github.com/google/google-api-php-client для перевода.Как получить перевод с Google Translate API v2 php?

Когда я пытаюсь

print_r($translation->listTranslations("John go home", "es")); 

Я получил

Google_Service_Translate_TranslationsListResponse Object 
(
    [collection_key:protected] => translations 
    [internal_gapi_mappings:protected] => Array 
     (
     ) 
    [translationsType:protected] => Google_Service_Translate_TranslationsResource 
    [translationsDataType:protected] => array 
    [modelData:protected] => Array 
     (
      [data] => Array 
       (
        [translations] => Array 
         (
          [0] => Array 
           (
            [translatedText] => John ir a casa 
            [detectedSourceLanguage] => en 
           ) 

         ) 

       ) 

     ) 

    [processed:protected] => Array 
     (
     ) 

) 

Но когда я пытаюсь получить переводы с помощью getTranslations функции() - я получил пустой массив. Пожалуйста посоветуй!

ответ

4

Похоже, что библиотека сломана.

Вы можете использовать это, чтобы получить перевод, хотя!

$client = new Google_Client(); 

$client->setDeveloperKey('xxxx-your-dev-key-xxxx'); 


$translate = new Google_Service_Translate($client); 
$translations = $translate->translations->listTranslations('Hello world!', 'fr'); 


var_dump($translations->data); 
var_dump($translations->data['translations'][0]["translatedText"]); 

Даст вам

array(1) { 
    ["translations"]=> 
    array(1) { 
    [0]=> 
    array(2) { 
     ["translatedText"]=> 
     string(17) "Bonjour le monde!" 
     ["detectedSourceLanguage"]=> 
     string(2) "en" 
    } 
    } 
} 
string(17) "Bonjour le monde!" 

Я представил PR that fixes this, но это еще не было принято.

Смежные вопросы