logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
24 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 110 395 039

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Questions »» [Résolu] - Changer de langue en un seul clic

[Résolu] - Changer de langue en un seul clic#26285

2Contributeur(s)
Sylvainjpb
3 Modérateur(s)
developpeurjpbJireck
Sylvain Sylvainicon_post
Salut, comme beaucoup j'aimerais changer de langue en un seul clic mais en restant sur la même page.
Dans un bloc je me mets des icônes de drapeau:
"[french]<p><a href="/images/flags/english.png"><img style="float: left;" src="/images/flags/english.png" alt="" /></a></p>[/french][english]<p><a href="/images/flags/french.png"><img style="float: left;" src="/images/flags/french.png" alt="" /></a></p>[/english]

dans le but de renvoyer à l'adresse courante en y ajoutant: "&choice_user_language=english" ou "&choice_user_language=french"

Ma question est, où je trouve la variable contenant l'url de la page actuellement affichée?

Merci.
jpb jpbicon_post
oui il y a des solutions le mieux est que tu utilise ceci ...




//==> multilangue
// choix de la langue sans redirection sur index, dispo que si la requete n'est pas post !
$req= $_SERVER['QUERY_STRING'];
$req1='';
$sep='';
$menlang='';
$user_language = $_COOKIE["user_language"];

if ($req != "")
{
  if (preg_match("#(choice_user_language=([^&]*&))#",$req,$res))
  {$req1= preg_replace("#(choice_user_language=([^&]*&))#","",$req);$sep="&amp;";}
  if (preg_match("#(choice_user_language=([^&]*))#",$req,$res))
  {$req1= preg_replace("#(choice_user_language=([^&]*))#","",$req);$sep="";}
  else
  { $sep="&amp;";$req1=$req;}
}

switch ($res[0])
{
    case "choice_user_language=french": $user_language ='french';
        break;
    case "choice_user_language=english": $user_language ='english';
        break;
    case "choice_user_language=chinese": $user_language ='chinese';
        break;
    default:
        $user_language;
        break;
}

switch ($user_language)
{
    case "french":
        $menlang ='<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=chinese'.$sep.$req1.'" title="&#x9009;&#x62E9;&#x8BED;&#x8A00;"><sub><font size="5" face="STFangsong">&#x4E2D;&#x6587;</font></sub></a>&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=english'.$sep.$req1.'" title="Choose your language">English</a>';
        break;
    case "english":
        $menlang ='<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=french'.$sep.$req1.'" title="Choisissez votre langue">Fran&#xE7;ais</a>&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=chinese'.$sep.$req1.'" title="&#x9009;&#x62E9;&#x8BED;&#x8A00;"><sub><font size="5" face="STFangsong">&#x4E2D;&#x6587;</font></sub></a>';
        break;
    case "chinese":
        $menlang ='<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=french'.$sep.$req1.'" title="Choisissez votre langue">Fran&#xE7;ais</a>&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?choice_user_language=english'.$sep.$req1.'" title="Choose your language">English</a>';
        break;        
    default:
        $menlang ='';
        break;
}

if ($_SERVER['REQUEST_METHOD'] == "POST") $menlang ='';
//<== mutltilangue








moi j'utilise cela dans mon header html mais tu pourra l'adapter pour le mettre dans un bloc ...( en respectant bien sur le contexte spécifique de codage pour les blocs) ...
et l'adapter ce code à tes drapeaux ... et dans ton flux html tu écris la variable menlang
Sylvain Sylvainicon_post
Merci pour ta réponse rapide.
Je vais bûcher ton code pour le comprendre avant de l'utiliser.
Je te tiens au courrant.

sylvain.
jpb jpbicon_post
pas de prob .. suis en ligne encore un moment
Sylvain Sylvainicon_post
Bon, Je suis nouveau ici alors je ne comprends pas tout. En plus je n'ai jamais fait de PHP.
Je ne comprends pas tout à ton code mais je l'ai débarrassé de la partie chinoise.
Ce que je ne vois pas c'est où je mets le code et comment j'utilise menlang.

Donc il n'y a pas de moyen simple pour avoir l'adresse de la page actuelle?

Si tu veux voir le premier balbutiement de mon site:
http://busmuli.chez.com
jpb jpbicon_post
si tu veux faire un essai alors fait le dans le header.html de ton theme ...

tu ouvre une balise php colle le code et ferme la balise ...
ensuite la ou tu veux ecrire ton micro menu lang tu ouvre une autre balise php comme ceci


<?php echo $menlang?>



bon si tu n'a jamais codé avec php ca va être un peu laborieux ...



Sylvain Sylvainicon_post
Non, pas de problème. J'ai pratiqué le fortan, des basics, python, html, le bash et même le dos. ;-) et d'autre langages que j'ai oublié.
jpb jpbicon_post
bo ok tu as vu le principe du code ?? apres tu n'a qu'a remplacer le texte par tes images de drapeaux..
jpb jpbicon_post
j'ai été voir ton site ;-)
Sylvain Sylvainicon_post
> J'ai été voir ton site
Ce n'est qu'une parcelle.

Bon j'ai tout fait mais l'éditeur de source me change le <?php echo $menlang; ?>
en commentaire ''
Il va falloir que je règle ça...

Message édité par : Sylvain / 21-03-2015 22:16

jpb jpbicon_post
il faut que tu code en dehors de npds ?...
jpb jpbicon_post
déjà il faut bien que tu relise aussi le code que tu vas coller car ici dans le forum il est détérioré ...
jpb jpbicon_post
as tu un skype pu autre que je te donne un code propre
Sylvain Sylvainicon_post
Je t'ai envoyé mon email en MP.
jpb jpbicon_post
je t'ai envoyer le code a ton adresse avec les majuscules ????
Sylvain Sylvainicon_post
Ça y est. Ça marche. Maintenant je vais essayer de remplacer les liens par les drapeaux.

Mille merci.Sylvain.
Sylvain Sylvainicon_post
Les drapeaux sont installés!
:=!