Attribuer une langue en fontion de l'URL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Attribuer une langue en fontion de l'URL

Re: Attribuer une langue en fontion de l'URL

par Cyrano » 01 sept. 2010, 09:53

Ok, alors dans ce cas dans ta gestion de vhost, tu peux rajouter dynamiquement un paramètre à l'url en fonction de l'extension selon la langue à afficher et à ce moment là ça pourrait pointer sur index.php?lang=de pour monsite.de, ou index.php?lang.fr pour monsite.fr.

Encore une fois je ne suis pas un spécialiste Apache, mais c'est là qu'il faut paramétrer. Mais il y aurait une autre option à explorer, fais une petite recherche, tu peux peut-être définir une variable d'environnement selon l'extension dans ta gestion de vhost, et dans ce cas ce serait encore plus simple : tu récupères ensuite cette variable d'environnement dans ton code et tu affiche la bonne langue, ce que faisant tu n,as pas besoin de rajouter quoique ce soit à l'url.

Re: Attribuer une langue en fontion de l'URL

par MisterSnow » 01 sept. 2010, 09:40

Bonjour Cyrano,

Chacun de mes noms de domaine pointe sur un seul et même site (une seule version multilingue).
En gros, sur mon hébergement j'ai un seul dossier www dans lequel se trouve mon site.

C'est pourquoi si il y avait un moyen de détecter l'URL et d'attribuer une langue en fonction ça aurait été bien pratique pour moi car mon site est exactement le même d'une langue à l'autre mise à part les textes bien sur.
Du coup, je ne pense pas qu'il soit judicieux de créer un dossier www par nom de domaine. Car dans ce cas chaque dossier contiendrait exactement la même chose à 2 caractères près dans le fichier de gestion des langues (par défaut "fr" ou "de" ou "it"...) d'où un gâchis en terme d'occupation de l'espace alloué sur le serveur.
Après il est surement possible et plus "professionnel" de mettre uniquement le fichier de gestion des langues spécifique dans chaque www et ensuite d'appeler le contenu (images/video...) se trouvant en un exemplaire dans un dossier "contenu".
Mais le soucis c'est que je me sens pas trop de faire ça car du coup il faudrait que je revois chaque chemin d'accès pour chaque image et peut-être aussi pour chaque fichier (gestion pages, gestion du formulaire, header, page1, page2, [...] page25, etc...), ça me prendrai des heures et des heures sans compter que j'ai l'impression que je risque de tout faire planter. :oops:

Enfin si il n'y a pas d'autres solutions.. .
En tout cas merci pour ton aide :wink:
M.S

Re: Attribuer une langue en fontion de l'URL

par Cyrano » 31 août 2010, 20:33

Salut, le problème est ailleurs.

Un nom de domaine en .de ou en .fr ou en .ce-que-tu-voudra, ça reste un nom de domaine, c'est donc un problème de DNS et vers quoi pointe chaque domaine. S'ils pointent tous vers la même IP, tu peux dans ce cas ajuster au niveau de ta configuration Apache : je suis pas un spécialiste, il me semble que c'est une histoire de vhost. Et c'est là que tu fais pointer vers telle ou telle version de ton site.

Mais ça veut donc bien dire que tu as différents noms de domaine.

Attribuer une langue en fontion de l'URL

par MisterSnow » 31 août 2010, 18:03

Bonjour à tous,

Je suis toujours sur mon site multilingue et je bloque sur la dernière marche. :(
Je dispose d'un hébergement en .com et d'alias en .fr .de et .it
Ce que je souhaiterai faire maintenant c'est spécifier une langue par défaut en fonction de l'URL, par exemple si l'internaute tape http://www.monsite.fr la page sera en français et si il tape http://www.monsite.de, elle sera en allemand, etc...
Je suppose que cela est possible ?

Pour plus d'infos voilà mon code de base pour la gestion des langues:
function gestionLangues ($lang) { 
    if(isset($_REQUEST['lang'])) {
				  $_SESSION['langage'] = $_REQUEST['lang'];
				}
				else {
				  if (!isset($_SESSION['langage'])) {
						  $_SESSION['langage'] = 'fr'; //français par défaut
						}
				}
				$this -> code_langue =  $_SESSION['langage'];
  }
D'après les pistes que j'ai explorées jusque là, je pense qu'il faudrait que je commence par récupérer l'URL avec un $_SERVER['REQUEST_URI'], et qu'ensuite je remplace à partir du else avec in if (URL en .de) { $_SESSION['langage'] = 'de';}
(voilà pour ma logique dans le texte mais étant un nouveau venu en PHP j'ai encore un peu de mal à passer du français au code... :oops:

En tout cas merci pour votre aide précieuse !
M.S