web-dev-qa-db-fra.com

Support multilingue sur un site Web PHP

J'ai un site Web très basique PHP qui est actuellement configuré pour deux langues, comme suit:

  • lang.en.php - Chaînes anglaises

  • lang.es.php - Cordes Espanol

  • en/- dossier avec PHP pages (PHP commence par traiter l'URL et charge les chaînes appropriées - dans ce cas, lang.en.php); les fichiers sont EXACTEMENT les mêmes que fr /

  • es/- dossier avec PHP pages (PHP commence par traiter l'URL et charge les chaînes appropriées - dans ce cas, lang.es.php); les fichiers sont EXACTEMENT les mêmes que es /

  • index.php - redirige l'utilisateur vers le sous-répertoire approprié en fonction de la langue du navigateur de l'utilisateur

Cela semble fonctionner correctement pour le référencement et la gestion facile, à l'exception de la duplication de fichiers dans les dossiers en/et es /. Si je souhaite mettre à jour/ajouter une page, je dois télécharger le même fichier à la fois en/et en /. Existe-t-il un moyen de faire en sorte que les dossiers en/et es/récupèrent les mêmes fichiers, par exemple un dossier/commun? Je voudrais conserver les répertoires en/et es/car ils sont conviviaux et, à ma connaissance, bons pour le référencement.

Toute aide serait très appréciée!

EDIT: J'ai envisagé d'utiliser une variable GET pour la langue (c'est-à-dire? Lang = en) qui résoudrait mon problème de duplication et me permettrait de remplacer les répertoires en/et es/par un répertoire commun pour toutes les langues dans lesquelles chaque la langue de la page est déterminée par la variable lang. Cependant, cela serait-il mauvais pour le référencement?

1
Stone

Au lieu de rediriger dans le fichier index.php vers le dossier approprié, procédez comme suit:

  1. Chargez le fichier de langue approprié en fonction de la langue du navigateur de l'utilisateur (un simple "requis").
  2. Au lieu de rediriger l'utilisateur vers le dossier, chargez ("require") à partir du dossier "commun" le fichier demandé par l'utilisateur.
0
Ivan