IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

traduction de resultat json dans une autre langue


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut traduction de resultat json dans une autre langue
    Bonjour,
    j'ai un fichier php de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    include("./include/connexion.php");
    include("./include/accent.php");
    include("./include/header.php");
     
     
      $sql=mysql_query("SELECT * FROM truc;");
      include("./include/lecture.php");
     
     include("./include/deconnexion.php");
     
     
    ?>
    Qui me renvoi un élément de type Json. lecture.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($row=mysql_fetch_assoc($sql))
    	$output[]=$row;
    	print(json_encode($output));
    Ce fichier fonctionne bien. J'aimerai que mon json soit traduit (en anglais, allemend etc ).
    J'ai essayer d'utiliser du js http://msdn.microsoft.com/en-us/library/dd877846.aspx mais sa ne fonctionne pas.
    Et je ne comprend pas la doc http://g-ernaelsten.developpez.com/tutoriels/bing/.

    Comment puis je faire pour traduire mon json ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Philippines

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 89
    Par défaut
    Tu peux traduire les éléments qui composent ton JSON, mais pas l'objet lui-même...

    Ça donnerait quelques chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($row = mysql_fetch_assoc($sql)) {
    	$output[] = ta_fonction_qui_traduit($row);
    }
    print(json_encode($output));

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    Je viens de m'appercevoir que ma solution javascript n'est pas possible car mon application android qui va intérroger mon fichier php recupére le js de la page. Comment puis je traduire le contenu ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Philippines

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 89
    Par défaut
    Tu peux utiliser des APIs de traduction, je pense que Google en propose une. Par contre ça me paraîtrait plus logique de traduire lors de la sauvegarde (en ajoutant des champs ou une jointure) dans la BDD qu'à chaque lecture.
    Imagine si ton site a 1000 visites sur cette page par jour, tu traduiras donc 1000 fois la même chose.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    tu veux dire traduire via la requete sql?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Philippines

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 89
    Par défaut
    Non je veux dire traduire avant l'ajout dans la BDD. Tu fais un script qui traduit tes champs avant de les enregistrer et comme ça tu récupères tes traductions en même temps qu'eux plus tard.

    Exemple basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $champs = 'blabla...';
    $champs_fr = fonction_de_traduction($champs, 'fr');
     
    $query = mysql_query("INSERT INTO `ma_base` (`id`, `champs`, `champs_fr`) VALUES ('', '$champs', '$champs_fr')");

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    Tu utiliserais quoi comme fonction_de_traduction?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <?php
    function traduction_google_v1($lg_lg,$mot_a_traduire)
    {
    //$lg_lg sous la forme fr|en
     
     
     
    /*
    <option value="ar|en">Arabic to English BETA</option>
    <option value="zh|en">Chinese to English BETA</option>
    <option class="line-above" value="zh-CN|zh-TW">Chinese (Simplified to Traditional) BETA</option>
    <option value="zh-TW|zh-CN">Chinese (Traditional to Simplified) BETA</option>
    <option class="line-above" value="en|ar">English to Arabic BETA</option>
    <option value="en|zh-CN">English to Chinese (Simplified) BETA</option>
    <option value="en|zh-TW">English to Chinese (Traditional) BETA</option>
    <option value="en|fr">English to French</option>
    <option value="en|de">English to German</option>
    <option value="en|it">English to Italian</option>
    <option value="en|ja">English to Japanese BETA</option>
    <option value="en|ko">English to Korean BETA</option>
    <option value="en|pt">English to Portuguese</option>
    <option value="en|ru">English to Russian BETA</option>
    <option value="en|es">English to Spanish</option>
    <option class="line-above" value="fr|en">French to English</option>
    <option selected="" value="fr|de">French to German</option>
    <option class="line-above" value="de|en">German to English</option>
    <option value="de|fr">German to French</option>
    <option class="line-above" value="it|en">Italian to English</option>
    <option value="ja|en">Japanese to English BETA</option>
    <option value="ko|en">Korean to English BETA</option>
    <option value="pt|en">Portuguese to English</option>
    <option value="ru|en">Russian to English BETA</option>
    <option value="es|en">Spanish to English</option>
    
    */
     
     
     
     
     
    $ch = curl_init();
    curl_setopt ($ch,CURLOPT_FRESH_CONNECT, 1);
    curl_setopt ($ch, CURLOPT_POST, 1);
    curl_setopt ($ch, CURLOPT_POSTFIELDS, 'text='.$mot_a_traduire.'&h1=en&ie=UTF8');
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt ($ch, CURLOPT_REFERER, "http://www.google.fr");
    //curl_setopt ($ch, CURLOPT_USERAGENT, "Curl");
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101");
    curl_setopt($ch, CURLOPT_URL, "http://translate.google.com/translate_t?langpair=$lg_lg");
    $contenu=curl_exec($ch);
    curl_close($ch);
    //echo $contenu;
    //recup du mot traduit dans la variable $contenu par l'intermediaire du dom (31 ieme balise td , 2 ieme balise br et noeud suivant)
    $doc = @DOMDocument::loadHTML($contenu);
    //echo"$contenu";
     
    //si dessus en cas de modif de la page
    //permet de retrouver le numero du div contenant le mot traduit
     
    //$i=0;
    //while($i<50)
    //{
    //echo"span numero--->".$i;
    //$liste_td = $doc -> getElementsByTagName('span') ->  item($i)->  nodeValue;
    //echo($liste_td);
    //echo"<br><br>";
    //$i++;
    //}
     
     
    $mot_traduit = $doc -> getElementsByTagName('span') ->  item('31')->  nodeValue;
     
    if ($mot_traduit!==""){return $mot_traduit;}else{ $mot_traduit ="FLASE"; return $mot_traduit;}
     
    }
    $mot=traduction_google_v1("fr|en","Bonjour");
    echo $mot; //affiche hello

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] resultat requete dans une autre
    Par Shivas dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/03/2009, 18h04
  2. écrire dans une autre langue chinois et arabe
    Par pottiez dans le forum C++Builder
    Réponses: 0
    Dernier message: 29/07/2008, 15h17
  3. Ecrire l'intitulé du sujet dans une autre langue
    Par HENRYC dans le forum Outlook
    Réponses: 2
    Dernier message: 11/07/2007, 17h41
  4. Installation dans une autre langue - NLS_LANG
    Par dzafer dans le forum Installation
    Réponses: 2
    Dernier message: 11/07/2007, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo