Page 1 sur 1

Affichage d'image selon langue

Posté : 24 mai 2012, 10:03
par samy210
Bonjour chère communauté et experts en PHP,

Je vous sollicite aujourd'hui dans le cadre de la conception d'un site internet. Il est conçu sous Wordpress et j'y ai installé le plugin Polylang qui permet d'avoir un site multilangues. Ce plugin permet de décliner le contenu du site dans différentes langues (articles, pages, menus, titres,...) mais pas les images.

Mon problème se situe au niveau des bannières, j'aimerai pouvoir afficher des bannières spécifiques selon la langue que l'internaute aura choisit sur le site (et pas la langue de son navigateur comme j'ai pu le voir ici et là sur les forums). Je m'explique :
J'ai créé une bannière "Découvrez nos produits" pour les 3 langues ("Discover our product" pour l'anglais et "Descubre nuestros productos" pour l'espagnol). Je suis à la recherche d'un code capable d'afficher la bannière en français lorsque l'internaute et sur la version française du site, afficher la bannière en anglais lorsqu'il est sur la version anglaise du site, etc.... pour information, l'url de l'index s'affiche ainsi pour les différentes langues :
http://www.mondomaine.com/en/ (Anglais)
http://www.mondomaine.com/fr/ (Français)
http://www.mondomaine.com/es/ (Espagnol)

J'ai trouvé un code qui se rapproche de ce que je cherche (enfin je pense, j'y connait pas grand chose en PHP, lol) mais apparemment celui-ci permet d'afficher un contenu différent selon la langue du navigateur. Hors j'aimerai afficher un contenu différent selon la langue choisit par l'internaute sur le site :
<?php
$languepreferee = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); 

if ($languepreferee[0] == 'fr') 
     {echo 'un contenu en français';}
elseif ($languepreferee[0] == 'de') 
     {echo 'un contenu en allemand';}
elseif ($languepreferee[0] == 'es') 
     {echo 'un contenu en espagnol';}
?>
Je vous remercie par avance pour votre aide, bonne journée chère communauté.

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 10:10
par piotrowski-s
alors si j'ai bien compris l'url change selon le choix de langue, c'est bien ça?

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 10:21
par piotrowski-s
moi j'aurais fais comme cela:
<?php
$monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

$langfr = "www.domaine.com/fr/";
$langes = "www.domaine.com/es/";
$langen = "www.domaine.com/en/";

similar_text($monUrl, $langfr , $p); 
if ($p > "50") {
echo " mon contenu en français" ;
}

similar_text($monUrl, $langes , $p); 
if ($p > "50") {
echo " mon contenu en espagnol" ;
}

similar_text($monUrl, $langen , $p); 
if ($p > "50") {
echo " mon contenu en anglais" ;
}
?>

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 10:28
par xTG
Tu peux travailler avec le contenu de $_SERVER['REQUEST_URI].
Si je me souviens bien elle ne contient pas le domaine, donc tu auras forcement en début de cette variable la langue de présente d'après ton format d'url.
Après à toi de voir si tu préfères un motif d'expression régulière ou bien jouer avec le résultat d'un explode().

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 10:43
par samy210
Merci pour votre réactivité,

piotrowski-s, si j'ai bien compris, je rajoute le code ci-dessous à l'endroit de la bannière ? Sachant qu'il y a un lien :
<?php
$monUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

$langfr = "www.domaine.com/fr/";
$langes = "www.domaine.com/es/";
$langen = "www.domaine.com/en/";

similar_text($monUrl, $langfr , $p); 
if ($p > "50") {
echo "<a href="http://www.exemple.com><img src="images/banniere_fr.jpg"></a>" ;
}

similar_text($monUrl, $langes , $p); 
if ($p > "50") {
echo "<a href="http://www.exemple.com><img src="images/banniere_es.jpg"></a>" ;
}

similar_text($monUrl, $langen , $p); 
if ($p > "50") {
echo "<a href="http://www.exemple.com><img src="images/banniere_en.jpg"></a>" ;
?>
Merci par avance.

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 12:02
par piotrowski-s
ce code est perfectible, tu dois d'abord changer tes liens et ce code en fait il étudie la similitude entre ton url et celle enregistrée comme référence.
si la similitude est de + de 50% alors il affiche l'image.

A toi de voir dans les echo il faut que tu mette le lien vers tes images et que tu changes les variables $lang par tes url spécifiques.
mais tu peux aussi faire comme le préconis xTG

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 12:27
par samy210
piotrowski-s, qu'entend-tu par "celle enregistrée comme référence" ?

Et quand tu dis "tu dois d'abord changer tes liens" et "A toi de voir dans les echo il faut que tu mette le lien vers tes images et que tu changes les variables $lang par tes url spécifiques", tu entends que je change "www.domaine.com" par mon vrai nom de domaine et "www.exemple.com" par la vraie adresse du lien je présume.

Également, je voulais savoir si on pouvait insérer dans la balise echo, un lien+image comme je l'ai mis dans mon exemple "<a href="http://www.exemple.com><img src="images/banniere_fr.jpg"></a>" ?

Merci par avance.

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 15:17
par piotrowski-s
sauf que dans la balise echo tu dois bien faire attention aux quotes qui sont les guillemets, ety pour les liens je ne connais pas ton domaines, a toi de remplacer.

Re: Affichage d'image selon langue

Posté : 24 mai 2012, 15:23
par samy210
Ok, merci beaucoup, je vais tester et je vous tient informé.

Re: Affichage d'image selon langue

Posté : 18 sept. 2015, 03:35
par dryland
salut moi je cherche a afficher une image selon la langue stocker dans la base de données user_lang
je dois faire $requet==( SELECT * FROM $users where user_lang ?

et après je dois faire un if ? genre
if $requet == en  afficherl' imageFR.png
else if 
is $requet==de afficher l' imageDE.png
sinon dans mon header apparait

Code : Tout sélectionner

<!DOCTYPE html> <html dir="ltr" lang="fr" xml:lang="fr"> <head>
je voulais savoir si il etait possible d afficher l image en function de la langue a partir de cette endroit par un script par exemple
if lang="fr" afficherl' imageFR.png

je suis pas developer je cherche a comprendre qu'elle sont les possibilities d arriver au but final sans que ce soit compliquer a faire pour un amateur,

merci
dryland

Re: Affichage d'image selon langue

Posté : 21 sept. 2015, 10:34
par Megadeth
Bonjour,

@samy : de mémoire wordpress propose de récupérer la langue en cours sinon on peut splitter l'url si la variable de langue ne bouge pas. Idem si la langue est stockée en base...

@dryland : préférable d'ouvrir ton propre topic/issue. Autrement oui tu peux switcher ta variable de langue et ainsi déterminer l'image. On peut également récupérer les balises, éléments via javascript, jquery... pour l'image tu peux définir la variable et juste jouer avec le nom de tes images...

Mega
;)

Re: Affichage d'image selon langue

Posté : 22 sept. 2015, 10:09
par dryland
salut Mega Merci ok je vais refaire mon post avant je vais essayer de refaire mon code qui ne fonctionne pas mais normal je debute je fais plein de grosse erreurs.