Développement site dynamique multilingue

Fermé
typiac Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 14 janvier 2015 - 16 avril 2013 à 18:02
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 - 17 avril 2013 à 22:47
Bonjour,

Après avoir parcouru les différents topics dédiés aux sites en php multilingue, je créé ce sujet car je n'ai pas réussi à faire mon choix, notamment parce que mon site est bourré de balises reliées à la base de données et qu'il n'est pas simple de comprendre comment on peut s'organiser en tenant compte à la fois de la vitesse, d'une certaine logique de développement, tout en ménageant son serveur, quand bien même il est dédié.

Alors voilà: Au grès de mes recherches j'ai trouvé une première solution pour traduire mes pages, sans faire appel à l'automatisation des traducteurs de type google qui sont loin d'être au point:

- Développer un appel de fichier lang.php à l'aide de cookie en suivant cette logique:

La page html:
<?php
if ($_GET['lang']=='fr') { include('lang/fr.php'); } 
else if ($_GET['lang']=='en') { include('lang/en.php'); }
else {  include('lang/fr.php'); }
?> 
<html>
<body>
<?php echo APPEL_PHRASE_X; ?> 
</body>
</html>


Ensuite, il faut donc les fichiers lang/fr.php et en.php

Prenons par exemple le fichier fr.php avec pour seule variable, l'appel "APPEL_PHRASE_X":

<?php
define('APPEL_PHRASE_X', 'Au secours commentcamarche !'); 


Jusque là, tout va bien mais mais mais....comme le site est dynamique, presqu'aucune phrase n'est fixe!:

la phrase 'Au secours commentcamarche !' est générée par un script.php qui va la chercher dans la base de donnée.

Donc la logique voudrait que je le code de cette façon:

<?php
define('APPEL_PHRASE_X', '$maphraseX'); 
?>


Du coup, j'ai un problème car ma phraseX dépend de la page appelée. Ce qui signifie que la phaseX regroupe plusieurs dizaines de phrases!!!

A ce stade, je me dis donc qu'il faut que je crée des tables dans lesquelles j'intègre directement les traductions en anglais de cette façon:

FICHIER FR.PHP
<?php
define('APPEL_PHRASE_X', '$maphraseX_fr'); 
?>


FICHIER EN.PHP
<?php
define('APPEL_PHRASE_X', '$maphraseX_en'); 
?>


En d'autres termes, c'est donc la base de données qui travaille.

Mais du coup, est ce que je ne risque pas de ralentir le serveur en multipliant les requêtes?

Suis-je dans la bonne direction ou est ce que quelque chose m'échappe?

Merci de vos retours!


A voir également:

2 réponses

typiac Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 14 janvier 2015 1
17 avril 2013 à 16:44
Arf, personne n'a un avis?
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 993
Modifié par Célien le 17/04/2013 à 22:49
Salut,

C'est normal que tu ai énormément de requêtes, tu ne devrais pas stresser pour ça, certains CMS ont plus de 40 requêtes par pages. Essaye de bien écrire tes requêtes, d'avoir une base bien structurée avec les index utiles. Si tu avais un serveur dédié, avec assez de RAM, et une base pas trop grosse, tout se passe en RAM et les requêtes sont servies presque instantanément. Si tu avais des problemes de perfs c'est souvent suite à un sale boulot, genre mauvais code, base mal foutue, ou index pas créé etc...
Si tu as bien programmé ton appli et bien fait ta base ça devrais aller, les serveurs sont généralement surpuissants et bourrés de RAM, si tu as un bon hébergeur bien sur.
0