Ik wil graag een string variable bv $text een productnaam in het engels vertalen naar nederlands dmv een function. Heb de hele nacht geprobeerd maar kom er niet uit. Dit is wat ik heb en zou moeten werken maar heb het op andere oude forums gevonden en denk dat het te maken heb met de nieuwe google translate api wat nu v3 is

<?php
function translateTo($translated_text)
{
$api_key = 'API Key';

$url ="https://www.googleapis.com/language/translate/v2?key=$api_key&q=$translated_text&source=en&target=nl";;

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); //We want the result to be saved into variable, not printed out
$response = curl_exec($handle);
curl_close($handle);

$translated_text = json_decode($response);

return $translated_text->data->translations[0]->translatedText;
}
?>

en ook dit geprobeerd:

<?php
function translate($translated_text){
$apiKey = 'API Key';
$url = 'https://www.googleapis.com/language/translate/v2?key='; . $apiKey . '&q=' . rawurlencode($text) . '&source=en&target=nl';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($handle);
$translated_text = json_decode($response, true);
curl_close($handle);

return $translated_text;
}
?>

Ik hoop dat iemand mij hiermee verder op weg kan helpen...
Wat is je output nu dan?
Het is via een cronjob import. zonder dit werkt het goed maar met dit gedeelte er bij dan blijft het draaien. Ik heb er ook aan gedacht maar weet niet of ik het kan testen dat ik de output kan zien.
1) Hoeveel strings wil je vertalen? Als het er heel veel zijn duurt zo'n externe call natuurlijk relatief lang tov gewoon overslaan.
2) Sla de $response eens op een bestandje, en kijk of de structuur nog wel overeen komt met wat je verwacht (overigens zou er geen verschil moeten zijn tussen aanroepen via een Cron, of gewoon even een test.php via de browser die gewoon hetzelfde doet (curl call).
3) Volgens mij moet je tegenwoordig altijd al een credit-card aan je account gekoppeld hebben (de eerste zoveel zinnen/karakters/whatever zijn wel gratis, maar zodra je daar boven gaat moet je betalen).
Schrijf de output naar een bestand?

* * * * 30 /usr/bin/php script.php >> output.txt
Ik ben even aan de slag gegaan om via online phptester te kijken wat de output is maar krijg met return $translated_text; niets te zien
Ga een stapje terug in je code en kijk naar $response.

Reageren