Comment créer des requêtes multilingues vers MySQL avec pHp

Table des matières
Un aspect dont il faut tenir compte est définir correctement la structure de la base de données. Bien qu'il puisse y avoir différentes manières de sauvegarder les enregistrements, nous devrons voir comment les informations doivent être structurées, c'est ce qu'on appelle le processus de normalisation de la base de données, qui est une étude des relations entre les tables. La première chose sur laquelle nous devons être clairs est que même si nous avons les enregistrements dans la base de données, cela ne subira pas de charge de requête, car nous utiliserons le propre cache de MySQL pour mettre les enregistrements en cache, disons que cela n'a pas de sens d'obtenir le nom d'une ville dans chaque requête si elle doit toujours s'appeler de la même manière, c'est-à-dire que nous configurerons la taille de notre cache en fonction du volume que notre base de données peut générer. Si vous souhaitez modifier la taille du cache, vous devez utiliser query_cache_size car c'est la variable MySQL qui contrôle la taille totale du cache.
Nous allons créer la relation des enregistrements avec InnoDB et l'utilisation de clés étrangères pour relier les tables, donc par exemple nous aurons une table appelée Pays et un champ sera l'identifiant de la langue et une autre table avec les langues avec traductions sera, cette dernière table sera celle qui a les dossiers qui seront traduits nom des pays dans différentes langues.

Depuis PHP La façon dont nous contrôlons la langue est d'utiliser des sessions, dans ce cas, nous sauvegardons l'ID d'enregistrement de la table de base de données pour identifier la langue de l'utilisateur, nous pouvons le faire par géolocalisation ou utiliser une langue par défaut pour le Web, puis l'utilisateur la modifie.
Nous mettons une session avec l'identifiant de langue :
$ _SESSION ['languageid'] = 1 ou $ _SESSION ['languageid'] = 'es';

Grâce à cette variable de session, lorsque nous interrogerons la base de données, nous utiliserons une clause WHERE comme celle-ci pour interroger les enregistrements en fonction de la langue.
 Sélectionnez * parmi les pays WHERE languageid = '". $ _ SESSION [' languageid ']."' Sélectionnez * parmi les produits WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Sur la base de cette méthode, nous devons préparer notre conception à s'adapter aux langues, en créant la conception entière pour accepter le contenu dynamique. Par exemple dans mysql pour le titre de la page nous aurons un champ pour chaque langue :
 title = ceci est la langue de mon produit = est le titre = ceci est la langue de mon produit = fr 

Tout comme la requête mysql apporte le langage défini, nous pouvons générer le contenu.
Par exemple, le titre de la page ressemblerait à ceci :

Un lien également dynamique avec l'attribut alternate :

On peut aussi le faire pour divers éléments du web comme les boutons :

Cela nous permet de faire abstraction de la langue de l'utilisateur pour afficher des contenus adaptés selon les pays et même les différentes rubriques. En plus de Mysql, la même méthode peut être utilisée avec des fichiers texte ou xml selon les besoins de chaque projet.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave