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 :

Bug dans le code PHP de changement de langues


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut Bug dans le code PHP de changement de langues
    Bonjour
    J'ai repris un site bilingue (Français et Anglais) et je doit rajouter l'allemand comme 3ème langue. Aidez moi à modifier le code PHP de gestion de langues. Merci

    Voici le code PHP de départ avec les 2 langues :
    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
    79
    <?php
    /*
    	Gestion de langue Front End
    -------------------------------------------------------------------------- */
    $Lang_List=array("fr","en");  
    // Règles
    if (isset($_GET['l'])&&(@in_array($_GET['l'],$Lang_List))) {
    	define('LG', $_GET['l']);
    }
    elseif (isset($_SESSION["userLg"])) {
    	define('LG', $_SESSION["userLg"]);
    }
    elseif (!defined('LG')) {
    	define('LG', "fr");
    }
    else { 
    	$Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);  
    	reset($Accept_Lang);
    	while (list($Index, $Language)=@each($Accept_Lang)) {
     
    		if (eregi("^(.+);q=([0-9.]*)$", $Language, $Part)) {
    			$Accept_Lang[$Index]=$Part[2].';'.strtolower($Part[1]);
    		}
    		else {
    			$Accept_Lang[$Index]='1.0;'.strtolower($Accept_Lang[$Index]);
    		}
    	}
    	//tri par ordre de préférence
    	arsort($Accept_Lang);
    	reset($Accept_Lang);
    	while (list(,$ALang)=@each($Accept_Lang)) {
     
    		reset($Lang_List);
    		while (list(,$Language)=@each($Lang_List)) {
     
    			if (strpos($ALang,$Language)!=0) {
    				define('LG', $Language);
    				break 2;	
    			}
    		}
    	}
    unset($Accept_Lang, $ALang, $Language);
    }
    $_SESSION["userLg"]=LG;
     
    /*
    	GET control
    ------------------------------------------------------------------------- */
    function getControl($getter) {
     
    	return htmlentities(stripslashes($getter), ENT_QUOTES, 'UTF-8');
    }
     
    /*
    	GET link
    ------------------------------------------------------------------------- */
    function getLink($url) {
     
    	return PATH.'/'.getControl(LG).'/'.$url;
    }
     
    /*
    	GET title
    ------------------------------------------------------------------------- */
    function getTitle($fr, $en) {
     
    	switch(LG) {
    		case 'fr' : return $fr;
    		break;
    		case 'en' : return $en;
    		break;
    	}
    }
     
    /*------------------------------------------------------------------------*/
    function getCurrent($url) {
     
    	return substr(strrchr($url, '/'), 0);
    }
    Voici le code PHP avec la 3ème langue et là ça bug :
    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
    79
    80
    81
    <?php
    /*
    	Gestion de langue Front End
    -------------------------------------------------------------------------- */
    $Lang_List=array("fr","en", "de");
    // Règles
    if (isset($_GET['l'])&&(@in_array($_GET['l'],$Lang_List))) {
    	define('LG', $_GET['l']);
    }
    elseif (isset($_SESSION["userLg"])) {
    	define('LG', $_SESSION["userLg"]);
    }
    elseif (!defined('LG')) {
    	define('LG', "fr");
    }
    else {
    	$Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    	reset($Accept_Lang);
    	while (list($Index, $Language)=@each($Accept_Lang)) {
     
    		if (eregi("^(.+);q=([0-9.]*)$", $Language, $Part)) {
    			$Accept_Lang[$Index]=$Part[2].';'.strtolower($Part[1]);
    		}
    		else {
    			$Accept_Lang[$Index]='1.0;'.strtolower($Accept_Lang[$Index]);
    		}
    	}
    	//tri par ordre de préférence
    	arsort($Accept_Lang);
    	reset($Accept_Lang);
    	while (list(,$ALang)=@each($Accept_Lang)) {
     
    		reset($Lang_List);
    		while (list(,$Language)=@each($Lang_List)) {
     
    			if (strpos($ALang,$Language)!=0) {
    				define('LG', $Language);
    				break 2;
    			}
    		}
    	}
    unset($Accept_Lang, $ALang, $Language);
    }
    $_SESSION["userLg"]=LG;
     
    /*
    	GET control
    ------------------------------------------------------------------------- */
    function getControl($getter) {
     
    	return htmlentities(stripslashes($getter), ENT_QUOTES, 'UTF-8');
    }
     
    /*
    	GET link
    ------------------------------------------------------------------------- */
    function getLink($url) {
     
    	return PATH.'/'.getControl(LG).'/'.$url;
    }
     
    /*
    	GET title
    ------------------------------------------------------------------------- */
    function getTitle($fr, $en, $de) {
     
    	switch(LG) {
    		case 'fr' : return $fr;
    		break;
    		case 'en' : return $en;
    		break;
    		case 'de' : return $de;
    		break;
    	}
    }
     
    /*------------------------------------------------------------------------*/
    function getCurrent($url) {
     
    	return substr(strrchr($url, '/'), 0);
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux être plus précise que "ça bug" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut
    Concernant, quand je rajoute la 3ème langue, le site(du moins les parties à traduire) disparait !

  4. #4
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut
    Je ne comprend pas entièrement le code, particulièrement cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (eregi("^(.+);q=([0-9.]*)$", $Language, $Part)) {
    			$Accept_Lang[$Index]=$Part[2].';'.strtolower($Part[1]);
    		}
    		else {
    			$Accept_Lang[$Index]='1.0;'.strtolower($Accept_Lang[$Index]);
    		}
    Quelqu'un peut-il m'aider ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- compare les codes avant / après modification.

    2- function getTitle($fr, $en, $de) { Où est utilisée cette fonction, à laquelle tu ajoutes un paramètre ?
    Dernière modification par rawsrc ; 02/12/2017 à 16h31.

  6. #6
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2010
    Messages : 414
    Par défaut
    Je constate que mon code ne fonctionne pas dès que je modifie cette fonction et je ne comprend pas pourquoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    GET title
    ------------------------------------------------------------------------- */
    function getTitle($fr, $en) {
     
      switch(LG) {
        case 'fr' : return $fr;
        break;
        case 'en' : return $en;
        break;
      }
    }
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    GET title
    ------------------------------------------------------------------------- */
    function getTitle($fr, $en, $de) {
     
      switch(LG) {
        case 'fr' : return $fr;
        break;
        case 'en' : return $en;
        break;
                    case 'de' : return $de;
        break;
      }
    }

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/07/2006, 13h48
  2. [Vba-E]Bug dans mon code
    Par antoinelavigne dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/06/2006, 14h55
  3. Erreur dans mon code PHP
    Par jack_1981 dans le forum Langage
    Réponses: 6
    Dernier message: 12/05/2006, 10h01
  4. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 3
    Dernier message: 23/01/2006, 09h33
  5. [PHP-JS] Probleme de javascript dans un code php
    Par stomerfull dans le forum Langage
    Réponses: 20
    Dernier message: 12/01/2006, 13h41

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