2017-09-29 4 views
0

Je suis la documentation du Google Translation API, spécifiquement pour la méthode translate qui accepte un ou plusieurs paramètre (s) q pour la (les) valeur (s) que vous voulez . de traduire et paramètre target qui accepte la langue que vous souhaitez traduire la valeur (s) dansComment faire un appel Google Translate REST API en PHP pour plusieurs chaînes

J'ai une fonction PHP qui effectue des appels à l'API REST et il fonctionne:

function google_translate() { 
    $api_key = 'my api key'; 
    $url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key; 

    $form = [ 
     'q' => 'Hello World!', 
     'target' => 'fr', 
    ]; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $form); 

    $response = curl_exec($ch); 

    curl_close($ch); 

    $response = json_decode($response); 
    var_dump($response); 
} 
google_translate(); 

Cela fonctionne bien Cependant, la documentation indique que vous pouvez fournir un gs en utilisant simplement plusieurs paramètres q. J'ai essayé ceci sur un client REST sans utiliser PHP et cela fonctionne ie fournissant plusieurs paramètres q dans le même appel avec différentes valeurs de chaîne et il renvoie des traductions pour tous, cependant, je ne sais pas comment je peux faire fonctionner cela avec PHP depuis un tableau PHP ne peut contenir que des clés uniques.

Comment puis-je retravailler ma fonction de sorte que je n'ai à faire qu'un seul appel au lieu de plusieurs pour les traductions de chaînes? Toute aide est appréciée!

Répondre

0

avez-vous essayé d'ajouter q dans querystring?

<?php 
$apiKey = 'Moo!'; 
$text = 'Hello world!'; 
$url = 'https://www.googleapis.com/language/translate/v2?key=' . $apiKey . '&q=' . rawurlencode($text) . '&source=en&target=fr'; 

$handle = curl_init($url); 
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($handle);     
$responseDecoded = json_decode($response, true); 
curl_close($handle); 

echo 'Source: ' . $text . '<br>'; 
echo 'Translation: ' . $responseDecoded['data']['translations'][0]['translatedText']; 

?>