Question about MySQL
kalimbra
Messages postés
546
Statut
Membre
-
xxkirastarothxx Messages postés 415 Statut Membre -
xxkirastarothxx Messages postés 415 Statut Membre -
Bonjour,
je me pose une question.. je dois créer un site internet dynamique multilingue, et je me demandais ce qui était mieux... tout les textes et leur traductions dans une seule table ou une table par langue.?
qu'est ce qui vous semble la meilleure approche ?
merci d'avance...
je me pose une question.. je dois créer un site internet dynamique multilingue, et je me demandais ce qui était mieux... tout les textes et leur traductions dans une seule table ou une table par langue.?
qu'est ce qui vous semble la meilleure approche ?
merci d'avance...
A voir également:
- Question about MySQL
- Mysql community download - Télécharger - Bases de données
- About you avis contrefaçon - Forum Vos droits sur internet
- Mysql error 2002 ✓ - Forum Linux / Unix
- About blank c'est quoi - Astuces et Solutions
- Mysql fatal error ✓ - Forum MySQL
3 réponses
Ca dépend vraiement de ce que tu appelle les textes de ton site =)
si tu veux que ton site soit multiluingue, je te conseil de tout d'abbord créer deux fichier: french.php et english.php ou tu stoquera tout les mots que tu n'enregistre pas dans ta base de donnée, et de définir leur valeur en fonction de la langue.
exemple:
Pour le mettre en place dans ton php, plutot que d'ecrire <?php echo "titre";?> ecrit plutot <?php echo _TITLE;?>
Ensuite definis par exemple une variable de session que l'utilisateur pourra modifier afin de définir sa langue,
et dans ton index.php, fait un include sous condition:
Ensuite pour les donnée que tu enregistre dans ta bdd, comme les news, ou les articles ...
Je te conseil de tout laisser dans la même table:
genre:
-id
-title
-date
-textfr
-texten
...
...
et dans ta page ou tu affiche ces données:
si tu veux que ton site soit multiluingue, je te conseil de tout d'abbord créer deux fichier: french.php et english.php ou tu stoquera tout les mots que tu n'enregistre pas dans ta base de donnée, et de définir leur valeur en fonction de la langue.
exemple:
french.php:
define("_TITLE", "titre");
define("_WELCOM", "Bienvenue sur mon super site-web");
define("_CONTENT", "contenu");
define("_ERROR", "erreur");
...
...-----------------------------english.php:
define("_TITLE", "title");
define("_WELCOM", "Welcom on my super Web-Site");
define("_CONTENT", "content");
define("_ERROR", "error");
...
...Car tu n'enregistre surement pas tout les mot de ton site en SQL ^^
Pour le mettre en place dans ton php, plutot que d'ecrire <?php echo "titre";?> ecrit plutot <?php echo _TITLE;?>
Ensuite definis par exemple une variable de session que l'utilisateur pourra modifier afin de définir sa langue,
et dans ton index.php, fait un include sous condition:
If($_SESSION['lang'] == fr){ include('lang/french.php');}
elseif($_SESSION['lang'] == en) {include('lang/english.php}
Ensuite pour les donnée que tu enregistre dans ta bdd, comme les news, ou les articles ...
Je te conseil de tout laisser dans la même table:
genre:
-id
-title
-date
-textfr
-texten
...
...
et dans ta page ou tu affiche ces données:
If($_SESSION['lang'] == fr){ $text = $donnees['textfr'];}
else {$text = $donnees['texten'];}
merci beaucoup pour cette idée. Je la retiens, bien sur.
En fait le problème est que je vais avoir un nombre, pour le moment indéfini, de traductions. Donc j'ai peur qu'au bout d'un moment, si je fais une seule table, qu'elle soit beaucoup sollicitée en simultanée si on a pas mal de visite sur le site...
c'est pourquoi je voyais plutot au niveau de mon CMS une procédure de création de lanque qui créerait toutes les tables nécessaires à une nouvelle langue. (table des textes, table des éléments graphiques traduits, etc... )
En fait le problème est que je vais avoir un nombre, pour le moment indéfini, de traductions. Donc j'ai peur qu'au bout d'un moment, si je fais une seule table, qu'elle soit beaucoup sollicitée en simultanée si on a pas mal de visite sur le site...
c'est pourquoi je voyais plutot au niveau de mon CMS une procédure de création de lanque qui créerait toutes les tables nécessaires à une nouvelle langue. (table des textes, table des éléments graphiques traduits, etc... )
Oui, mais chaque utilisateur n'utilisera les données que d'un seul champ à chaque fois:
Imaginons que tu ai 200 utilisateurs français, il y aura 200 requêtes sur la même tables,
et si tu as 100 utilisateurs français et 100 anglais, ça serra pareil,
ou 30 fr, 30en, 30de, 30be, 30es ......
ce qui compte c'est le nombre d'utilisateurs qui se connectera, pas le nombre de différentes traductions.
Si tu penses que tu aura un nombre d'utilisateurs vraiment important, tu peux effectivement penser à séparer les tables afin d'alléger le tout, mais je ne pense vraiment pas que ça soit nécessaire.
Imaginons que tu ai 200 utilisateurs français, il y aura 200 requêtes sur la même tables,
et si tu as 100 utilisateurs français et 100 anglais, ça serra pareil,
ou 30 fr, 30en, 30de, 30be, 30es ......
ce qui compte c'est le nombre d'utilisateurs qui se connectera, pas le nombre de différentes traductions.
Si tu penses que tu aura un nombre d'utilisateurs vraiment important, tu peux effectivement penser à séparer les tables afin d'alléger le tout, mais je ne pense vraiment pas que ça soit nécessaire.