Tableau MySQl pour site bilingue

Résolu/Fermé
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 - 14 janv. 2011 à 00:36
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 - 14 janv. 2011 à 10:40
Bonjour,

Je suis en train de faire un site php bilingue et pour me faciliter son administration, j'ai choisi de mettre l'ensemble des textes sous une base de données MySQL, j'ai donc ces 4 champs :

-id
-nom
-lg_fr
-lg_en

je souhaite effectuer une requête du type "select nom, '$lg' from data;" et récupérer tous les textes qu'il me faut en une fois plutôt que de multiplier les requêtes. Il me faudrait donc un tableau avec comme colonne le nom du champ et en valeur, celle de la bonne langue.

Mais je ne sais pas comment récupérer les données sous cette forme et ensuite les sélectionner comme je le souhaite...

Si quelqu'un a une idée ou du moins une piste, parce que là je sèche !

Merci d'avance.
A voir également:

6 réponses

LaurentJ1 Messages postés 43 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 30 janvier 2011 8
14 janv. 2011 à 10:35
Salut,
La solution la plus simple que j'utilise pour mes sites multilangues est la suivante.
Tu composes tes pages en PHP. tu en fais une texte.php qui regroupera tes traductions uniquement.
Elle commencera comme cela :
<?php
$lang = "";
if (isset($_GET['lang']) && ($_GET['lang'] == 'fr' || $_GET['lang'] == 'en' ||  $_GET['lang'] == 'es')) {
    $lang = $_GET['lang'];
} else {
    $lang = "fr";
}

La langue défaut est "fr". Les autres peuvent être sélectionnées par liens
Ensuite les array:
$tekst = array(
//barre de navigation par exemple
	"navig" => array(
		"cell1" => array(
                           	"fr" => "Accueil",
                           	"en" => "Home",
				"es" => "Inicio",
						
		),
		"cell2" => array(
                            "fr" => "Réservations",
                            "en" => "Bookings",
			    "es" => "Reservas",
							
		),

et ainsi de suite.
Dans chaque page de ton site, tu rajoutes un include genre:
<?php
include_once 'texte.php';
?>

et comme dans l'exemple à chaque emplacement de texte dans tes pages tu fais un appel genre:
<?php echo $tekst['navig']['cell1'][$lang]; ?>

Attention à modifier tes liens pour garder la langue de page en page:
<a href="tapage.php?lang=<?php echo $lang; ?>



ciaooo
1
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
14 janv. 2011 à 09:35
Bonjour AdminTOURS,

Tu souhaite sélectionner la langue suivant ce que la personne à choisie dans son formulaire ou stocker les données des langues dans la base de donnée ?

Je pense plutôt que tu souhaite afficher une langue ou une autre suivant la page.

Dans ce cas, tu pourrais très bien intégrer du php suivant la bdd. Si c'est le cas c'est assez simple mais tu pourrais avoir besoin d'un espace membre (sinon tout le monde peut se connecter sur n'importe quel nom...
0
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 92
14 janv. 2011 à 09:38
En fait le site est complétement ouvert, je récupère la langue via un get, le contenu s'affiche alors en fonction. Les textes sont dans la base de données, seulement j'aimerais n'avoir qu'une seule requête (ce qui marche bien) mais pouvoir sélectionner dans le tableau obtenu (désolé si ce n'est pas très clair), car je n'arrive pas à manipuler mon résultat.
0
Nowne Messages postés 89 Date d'inscription samedi 30 octobre 2010 Statut Membre Dernière intervention 7 mars 2011 4
14 janv. 2011 à 10:08
Je ne comprend pas bien... C'est un forum ? Les gens postes leurs messages avec le nom et le texte qui est traduit dans les deux langues dans la base de donnée ? Et tu voudrais qu'en cliquant, il choisisse qu'elle langue afficher ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 92
14 janv. 2011 à 10:14
Non c'est un site de présentation de société qui comprend donc différentes pages, j'ai mis tous mes textes dans la bdd : le premier champ est un index, le deuxième est le nom de l'élément, le troisième est sa valeur en français et le 4ème sa valeur en anglais, j'y inclus aussi la traduction des menus etc, bref tout mon contenu texte.
En fonction de la variable get, le fichier php affiche les champs dans la langue correspondante.
C'est un peu comme une table de paramètre wordpress et du coup il me suffit de faire un select de ma langue voulue pour avoir dans un tableau l'ensemble de mes textes. Après j'aimerais sélectionner tel ou tel éléments pour les placer dans les div correspondantes.
0
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 92
14 janv. 2011 à 10:40
Merci beaucoup je vais tester tout ça !
0