Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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/04/2006, 18h06   #1
Membre habitué
 
Inscription : août 2004
Messages : 451
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 451
Points : 137
Points : 137
Envoyer un message via MSN à artotal
Par défaut Changement de langue

j'ai un bon script de langue en plusieurs page mais j'aimerai connaître d'autre façon de développer.
http://creatif-web.be/coursphp/multilingue/index.php
Parceque tout le fond est conçu pour mettre le texte dans des variables.
__________________
contribution sur phpclasses d'une classe de connection à une base de donnée en php5
http://www.phpclasses.org/browse/file/23687.html
artotal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 19h15   #2
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 76
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 76
Points : 38
Points : 38
hem, il serai bien d'expliquer un peu le problème?

tu veux juste avoir une autre technique par curiosité ou il y a un problème avec la méthode actuelle?

une méthode facile:
définition de lang de l'utilisateur dans une variable session, puis require_once('lang_'.$_SESSION['lang'].'.inc'); au début du fichier


ensuite $texte['text_menu_principal'] par exemple dans un echo.

tu as alors plusieurs fichier du type lang_fr.inc, lang_sp.inc, etc...
qui contiennent par exemple
lan_fr.inc:
Code :
1
2
3
$texte = array();
$texte['text_menu_principal'] = "menu principal";
....
lan_en.inc:
Code :
1
2
3
$texte = array();
$texte['text_menu_principal'] = "main menu";
....
narkhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 22h12   #3
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par narkhor
hem, il serai bien d'expliquer un peu le problème?

tu veux juste avoir une autre technique par curiosité ou il y a un problème avec la méthode actuelle?

une méthode facile:
définition de lang de l'utilisateur dans une variable session, puis require_once('lang_'.$_SESSION['lang'].'.inc'); au début du fichier


ensuite $texte['text_menu_principal'] par exemple dans un echo.

tu as alors plusieurs fichier du type lang_fr.inc, lang_sp.inc, etc...
qui contiennent par exemple
lan_fr.inc:
Code :
1
2
3
$texte = array();
$texte['text_menu_principal'] = "menu principal";
....
lan_en.inc:
Code :
1
2
3
$texte = array();
$texte['text_menu_principal'] = "main menu";
....
Et vive la duplication de code !
On peut faire une seule page, mais avec des choses du genre :
Code :
1
2
$texte['en']['text_menu_principal'] = "main menu";
$texte['fr']['text_menu_principal'] = "menu principal";
J'imagine d'ailleurs que c'est ce que fait, en gros, le système cité plus haut.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2006, 16h05   #4
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 76
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 76
Points : 38
Points : 38
Citation:
Envoyé par Eusebius
Et vive la duplication de code !
duplication de code??
je suis sur que la somme du poids des pages.inc créé de la manière que j'ai décrit et strictement inférieur à l'unique page que tu proposes.

de plus, il n'est pas nécéssaire de parser toutes les langues a chaque fois, quel intérêts de pouvoir connaitre comment dire bonjour en allemand si on sais que cela ne nous servira pas?

deuxièmement, ça utilise moins de mémoire et de temps puisque le tableau $texte est plus petit.

encore autre chose, les pages php seront elles aussi plus légère:
au lieu de:
Code :
echo $texte['$lang']['item1'];
narkhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2006, 19h41   #5
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
La duplication de code n'apporte pas d'avantage en terme de "poids" des pages, mais en terme de robustesse : si tu fais une modif sur la structure d'une page multi-langue dans ton système, il faut modifier autant de pages qu'il y a de langues. Dans le mien, une seule page à modifier.

Après il faut voir où sont les priorités. Effectivement si la quantité de texte est importante, c'est pas forcément une bonne solution... Si c'est des grosses portions de texte (des articles), peut-être que je les mettrais dans une base de données.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2006, 11h39   #6
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 76
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 76
Points : 38
Points : 38
effectivement je ne l'avais pas vu comme cela, comme j'ai proposé, on risque de faire des oublis lors de l'ajout de nouvelles entrées.
narkhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h14.


 
 
 
 
Partenaires

Hébergement Web