Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2011, 16h09   #1
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Par défaut traduction de resultat json dans une autre langue

Bonjour,
j'ai un fichier php de ce type :
Code :
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 :
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 ?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 03h30   #2
Membre habitué
 
Homme Mathias Philippe
Développeur Web
Inscription : septembre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Mathias Philippe
Localisation : Philippines

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

Informations forums :
Inscription : septembre 2011
Messages : 75
Points : 121
Points : 121
Tu peux traduire les éléments qui composent ton JSON, mais pas l'objet lui-même...

Ça donnerait quelques chose comme ça :

Code :
1
2
3
4
5
 
while ($row = mysql_fetch_assoc($sql)) {
	$output[] = ta_fonction_qui_traduit($row);
}
print(json_encode($output));
MrPringle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 16h20   #3
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
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 ?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 21h47   #4
Membre habitué
 
Homme Mathias Philippe
Développeur Web
Inscription : septembre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Mathias Philippe
Localisation : Philippines

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

Informations forums :
Inscription : septembre 2011
Messages : 75
Points : 121
Points : 121
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.
MrPringle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 12h13   #5
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
tu veux dire traduire via la requete sql?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 13h58   #6
Membre habitué
 
Homme Mathias Philippe
Développeur Web
Inscription : septembre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Mathias Philippe
Localisation : Philippines

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

Informations forums :
Inscription : septembre 2011
Messages : 75
Points : 121
Points : 121
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 :
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')");
MrPringle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 10h18   #7
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Tu utiliserais quoi comme fonction_de_traduction?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 16h46   #8
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Code :
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
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h17.


 
 
 
 
Partenaires

Hébergement Web