Vous n'êtes pas identifié(e).
Pages :: 1
hello à tous,
j'ai un menu en anglais qui est inséré en include dans toutes mes pages - je rêve de pouvoir changer d' "include" s'il le navigateur détecte que l'internaute est situé en france - il aurait ainsi une nav en français ... c'est possible? plutôt que les redirections je préfère "jongler" avec include que je trouve génial ... aussi, si j'ai 2 include dans la même page est-il possible de changer les 2 à la fois (ex. le menu + un texte)
merci
Hz.
Hors ligne
Bonjour,
Oui c'est parfaitement possible.
Par contre, sur le plan technique, en ce qui me concerne, j'opterais plutôt pour garder les includes existants et developper une ressource de gestion language basé sur une fonction qui retourne un message texte en fonction d'un parametre langue et N° de message. Le support peut être un fichier .txt situé sur le serveur. L'avantage de ce système est de ne pas toucher au code php à chaque fois que l'on rajoute une langue dans l'applicatif. Suffit de mettre à jour le(s) fichier(s) ressource de globalisation.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
comment tu fais pour la première solut ?
merci
Hors ligne
Salut,
Comme je disais JC, c'est parfaitement possible... et comme lui, j'opterais pour une autre technique : le define()
Dans un premier temps, ta page qui définit le langage (nommée decide-lang.php) :
et ensuite, tes fichiers "langue" :
selon mon code, fr-lang.php
et en-lang.php :
Enfin, dans ta page d'affichage :
Ainsi, tu obtiendras soit " Accueil : Bonjour ", soit " Accueil : Welcome " selon la langue choisie
Grace à cette méthode, tu ne changes pas d'include, mais simplement les textes
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
classe !
merci messieurs
Hors ligne
2 pti trucs ... je suis pas sûr qu'il y ait une } ici --> $lang=substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);}
et puis il a pas l'air de détecter le fr ... il se base sur le'hébergeur ou le navigateur ?
Hors ligne
effectivement... cela fait partie d'un plus long code ... et oubli de la virer lors de la recopie (oui, gros fénéant inside ^^)
Il se base TOUJOURS sur le navigateur du visiteur
Après, il est vrai que ce code date un peu et que les $HTTP_SERVER_VARS['blabla'] sont, je crois, périmés...
Dans ce cas, utilise $_SERVEUR['HTTP_ACCEPT_LANGUAGE']
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
yep merci, ça marche sous IE mais pas chrome ... j'ai aussi trouvé un code où le type utilise explose à la place de subtr tu peux m'expliquer la différence?
$lang = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
merci!
hz
Hors ligne
en fait :
- explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']) va rechercher le contenu en fonction du paramètre défini (ici, la " , ") : utile si longueur a récupérer a une longueur aléatoire
- substr("test",0,2) par contre récupère "n" caractères (ici 2) à partir du caractère "x" (ici 0) : ici, ça renverra " te "
Ainsi, il est plus approprié lorsque tu sais à l'avance la longueur et la position de ce que tu veux récupérer.
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
super merci pour ton retour
bonne journée !
Hors ligne
encore moi, mais décidément !
le script marche très bien vec IE (pour une fois !!) et FIREFOX pourquoi pas chrome et safari ???????:rolleyes: c'est frustrant...
une idée ?
merci
Hors ligne
Chaque explorateur web "traduit" les codes à sa propre manière... il peut y avoir des divergences notables !!
Firefox donne une fois de plus l'exemple, avec un respect des standards et de leurs interprétations...
Chrome n'est pas encore tout à fait au point (la preuve)... et Safari apparemment aussi.
Lorsque l'on veut avoir un explorateur web leger, il faut savoir faire des concessions...
c'est pas pour rien que certains sont un peu plus lourds afin d'intégrer des fonctionnalités "nécessaires".
(note perso : sans concevoir la lourdeur IE qui est purement aberrante)
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
LA SOLUTION !!!!
en fait chaque navigateur reconnait fr de differentes façons.. IE => fr ; firefox => fr-fr et chrome fr-FR !!!!
voilà mon code et ça marche j'espère que ça aidera certain d'entre vous ...
Hors ligne
pardon ... safari => fr-fr (pas firfox..)
Hors ligne
ok, mais si tu dois gérer 10 langues, tu comptes faire autant de conditionnelle ??
vu que la partie commune se situe sur les 2 premiers caractères...
Autant faire :
Simplicité - Efficacité - Concision
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
Bonjour,
Comme je l'ai dit au début, j'aime pas cette methode non plus car comme tu l'as si bien dit alnoss elle t'oblige aussi a faire 1 ligne de code par langue gérée.. Et puis pour un site qui doit en gérer 20 (enfin c'est rare aussi^^) ca fait une sacré entête sur toutes tes pages..
Enfin je dis ça, je dis rien hein.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
ca fait une sacré entête sur toutes tes pages..
Pas du tout, un simple
suffit
-------
P.S : Et pour moi qui utilise une pseudo-frame, il me suffit de le mettre 1 seule fois, dans ma page de trame (structure assembleuse d'include)
MERCI de lire le mode d'emploi avant de poster !!
Hors ligne
super j'avais pas pigé ... $lang = substr($lang[0],0,2);
bon ben voilà un pb 100% résolu !
encore merci
Hors ligne
Pages :: 1