Jump to content

Traduction google translate api


Recommended Posts

Bonjour,

 

Je galère depuis deux semaines sur un bout de code que je n'arrive pas a à faire fonctionner, ce bout de code est censé me donner une base sur laquelle je vais pouvoir avancer pour permettre une traduction semi-auto de mes fiches produits, mais je rencontre un problème de base

 

Voici ma classe de traduction et son appel:

<?php

Class GoogleTranslate
{
   public function checkError($result)
   {
    $result = json_decode($result);

    if (empty($result))
	    return array('error' => true, 'msgError' => 'Empty result');
    if (!empty($result->error))
	    return array('error' => true, 'msgError' => $result->error->errors[0]->reason);

    return array('error' => false, 'translation' => $result->data->translations[0]->translatedText);
   }

   public function translate($content, $from = 'fr', $to = 'en')
   {
    $data = array(
	    'key' => "xxxxxxxxxxxxxxxxxxxxxxx",
	    'q'  => $content,
	    'source'  => $from,
	    'target'    => $to,
    );
    $urlTarget = 'https://www.googleapis.com/language/translate/v2';

    $ch = curl_init($urlTarget);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: GET'));
    $result = curl_exec($ch);
    curl_close($ch);

    return $this->checkError($result);
   }
}
mysql_connect("localhost", "durex", "comcom") or die(mysql_error());
mysql_select_db("kikoolol") or die(mysql_error());
// chopper les produits
$result = mysql_query("SELECT *
FROM ps_product_lang
WHERE id_product =5
AND (
id_lang =1
OR id_lang =2
)")
or die(mysql_error()); 
while($row = mysql_fetch_array($result)){
$data[]=$row;
}


$google = new GoogleTranslate();
$result = $google->translate($data[1][4], 'fr', 'en');
if ($result['error'])
   echo $result['msgError'];
else
   echo $result['translation'];


   ?>

 

 

Quand je lui donne ceci à traduire:

 

 

Contenu :

 

• 200 g

 

• ?Bougie 100 % naturelle, à base de cire d’abeille et d’huile végétale de soja

 

 

Il me renvoie ceci:

 

 

Content:

 

200 g

 

? Candle 100% natural wax and dabeille dhuile vgtale soy

 

donc j'ai un problème avec les accents que je n'arrive pas résoudre, tout en sachant que urlencode et rawurlencode me donnent un résultat blanc, mais vraiment blanc.

 

la fonction javascript encodeURIComponent me donne un résultat parfait, mais pour pouvoir l'utiliser faut déclarer un paradoxe temporel, exécution serveur, puis exécution client puis exécution serveur dans le même temps...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...