Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 31/01/2011, 09h11   #1
Membre du Club
 
Inscription : janvier 2008
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 705
Points : 66
Points : 66
Par défaut php5 et mysql avec multi-language

Bonjour,

J'ai suivi votre conseil est utilIser votre technique qui fonctionne très bien qu'un utilisateur m'avait conseiller pour un site en multi-language comme suit:
Fichier config.php appeller dans mon toutes les pages:


Code :
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
<?php
if(empty($_GET['lang'])){
	$_SESSION['lang'] = "fr";
}else{
	switch($_GET['lang']){
		case "fr":
		$_SESSION['lang'] = "fr";
		break;
		case "en":
		$_SESSION['lang'] = "en";
		break;
		case "it":
		$_SESSION['lang'] = "it";
		break;
		default :
		$_SESSION['lang'] = "fr"; //au cas ou quelqu'un rentre autre chose que fr/en ou it
		break;
	}
}
 
switch($_SESSION['lang']){
		case "fr":
		$fichier_langage = "lang/fichier_fr.php";
		break;
		case "en":
		$fichier_langage = "lang/fichier_en.php";
		break;
		case "it":
		$fichier_langage = "lang/fichier_it.php";
		break;
}
include($fichier_langage);
?>



fichier : fichier_fr.php

Code :
1
2
3
4
<?php
define("_BIENVENUE","Bienvenue sur mon site web !");
define("_BONNE_NAVIGATION","Je vous souhaite une bonne navigation.");
?>


fichier : fichier_en.php

Code :
1
2
3
4
<?php
define("_BIENVENUE","Welcome to my website");
define("_BONNE_NAVIGATION","I wish you a good navigation.");
?>



idem pour l'italien et les autres langues éventelles.

fichier index.php

Code :
1
2
3
4
5
6
<?php
include("config.php");
?>
<h1><?php echo _BIENVENUE;?></h1>
<div><?php echo _BONNE_NAVIGATION; ?></div>
?>

Mais j'aurai une autre question j'utilise php5 et j'affiche un tableau mysql avec une fonction d'une classe.Mais ma comment faire pour qu'il soit aussi en multi-language par rapport a la langue choisi?

merci.
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 09h24   #2
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 17
Points : 15
Points : 15
Déjà petite question... Pourquoi faire 2 switch alors que tu pourrais n'en faire qu'un ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if(empty($_GET['lang'])){
	$_SESSION['lang'] = "fr";
}else{
	switch($_GET['lang']){
		case "fr":
		$_SESSION['lang'] = "fr";
                $fichier_langage = "lang/fichier_fr.php";
		break;
		case "en":
		$_SESSION['lang'] = "en";
                $fichier_langage = "lang/fichier_en.php";
		break;
		case "it":
		$_SESSION['lang'] = "it";
                $fichier_langage = "lang/fichier_fr.php";
		break;
		default :
		$_SESSION['lang'] = "fr"; 
               $fichier_langage = "lang/fichier_fr.php";
		break;
	}
}

Ensuite dans mysql, comment stockes-tu tes données multilingues ?
Sur plusieurs tables, plusieurs champs... ?
Myst. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 09h25   #3
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
ton approche est assez naïve de la question. Mais grosso modo il faut offrir une traduction pour les textes qui font partie du gabarit du site et pour les textes qui font partie du contenu du site (le bouton Recherche par rapport au titre de la page).

C'est là ou si ton site n'est pas extrêmement bien conçu qu'on commence à pleurer

ya des traités sur le web qui parlent de l'api gettext.

http://www.gnu.org/software/gettext/manual/gettext.html
http://php.net/manual/en/book.gettext.php
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h35   #4
Membre du Club
 
Inscription : janvier 2008
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 705
Points : 66
Points : 66
je stocke les données à afficher que dans une table seulement, j'en avais besoin q'une.Merci
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 14h51   #5
Invité de passage
 
Ahmed Hentati
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Ahmed Hentati
Localisation : Tunisie

Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 2
Points : 2
Citation:
Envoyé par kate59 Voir le message
je stocke les données à afficher que dans une table seulement, j'en avais besoin q'une.Merci
je pense que ta table doit etre sous la structre suivante :

id
cle
mot_fr
mot_en
mot_it
...

donc ta requete sera sous la forme : "select cle, mot_".$_SESSION['lang']." as value from table";
ahmed32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 12h35   #6
Membre du Club
 
Inscription : janvier 2008
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 705
Points : 66
Points : 66
que veut tu dire me stable sont sous forme:

id
marque_machine
modele_machine
annee_machine
couleur_machine
estActive
estDisponible

donc toi tu pense que je doit rajouter des tables c'est ca?

marque_machine, fr_marque_machine,en_marque_machine a rajouter par exemple.
kate59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 14h29   #7
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
si tu veux fonctionner comme ça, utilise une table dictionnaire.

symbole, langue, traduction
time, en, time
time, fr, temps
search, en, search
search, fr, recherche

et comme le symbole pour l'anglais c'est le même mot que la traduction, tu simplifies en effaçant les traductions pour l'anglais. Ne mélange pas la logique commerciale/métier/... avec la langue du visiteur sauf si ça a un vrai sens.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 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 06h34.


 
 
 
 
Partenaires

Hébergement Web