Page 1 sur 1

Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 16:20
par sam01
Bonjour,

voilà j'ai plusieurs url avec des extensions différentes :

www.example.com
www.example.fr
www.example.it
www.example.es

et j'aimerais, en fonction du choix de la langue de l'internaute le dirigé vers telle ou telle url.

Quelle est la technique que vous adoptez ?

Merci d'avance pour votre aide.

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 16:39
par dunbar
Salut,
Un truc du genre
$lg = (isset($_SESSION['lang']) ? $_SESSION['lang'] : 'com');

header("Location: http://www.example. .$lg);

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 16:55
par sam01
Bonjour Dumbar et merci pour ta réponse rapide.

Mais au fait je ne veux pas un truc du genre, c'est assez sérieux ce que je demande.

j'aimerais être sûr de mon coup.

je ne voudrais partir sur une fausse piste et tout recommencer tu me comprends ?

Je voudrais mettre en place un site multilingue avec des noms de domaines différents alors je fait appel à des personnes qui ont de l'expérience dans ce domaine et qui pourrait
me filer des tuyaux.

merci.

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 16:57
par stealth35
en quoi ca réponse n'est pas suffisante ? :shock:

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 17:27
par sam01
Si la langue n'est pas dans session...

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 17:36
par stealth35
Si la langue n'est pas dans session...
c'était un exemple, (genre langue préférer du client),

après a quel niveau la personne fait le choix ?
comma tu gères ca t'as un site par langue ? serveur différent ? virtual directory ?

Re: Gestion des multiextension pour un site multilingue

Posté : 22 sept. 2010, 23:27
par sam01
Ben je compte mettre des drapeaux sur chaque page, ce qui permettra aux internautes de choisir leur langue.

mais si une personne tape directement :

www.example.es

il faut que j'intègre un coe php qui vérifie l'url, et en fonction de l'url utilise la traduction espagnole ?

Il faut donc que je prévois dans les deux sens ...

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 00:09
par stealth35
donc ?
un site par langue ? serveur différent ? virtual directory ?

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 09:38
par sam01
un site par langue.

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 11:57
par zeus
La solution de dubar, bien qu’extrêmement dépouillée est la bonne ;)
Ensuite, c'est à toi de faire le système qui alimente la session.

Ce que je te propose, c'est une page de ton application qui permet de modifier la langue, qui la stocke en session/cookie (préférence pour le cookie, qui persiste après extension de la session, si bien configuré), et qui redirige sur le bon domaine.
Ensuite, dans ton application, tu fais en sortes que tout appel passe par une fonction de vérification qui s'assure que la langue et le domaine correspondent.
Si ce n'est pas le cas, tu as la fonction de dunbar, qui te permet de rediriger sur le bon domaine (bien sûr, il te reste de t'assurer que la langue contenue dans le cookie est une des langues que tu acceptes ;)).

Par contre, mettre en place le multilangue ne se limite pas au nom de domaine : quid des url ? pour un référencement optimal, tu devrais avoir, par exemple : http://www.exemple.fr/nous_contacter.html et http://www.exemple.co.uk/contact_us.html

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 12:34
par sam01
OK, ça me va comme explication

voilà ce que j'ai en tête de chaque page

if(!empty($_COOKIE['lang']))$lang=$_COOKIE['lang'];
if(!empty($_GET['lang']))$lang=$_GET['lang'];
if(!empty($lang) && ($lang=='eng' || $lang=='fr' || $lang=='esp')){
  include('lang-'.$lang.'.php');
  setcookie('lang',$lang,time()+3600*25*365,'/');
}else include('lang-eng.php');

// ajout du code de Dunbar

$lang = (isset($_SESSION['lang']) ? $_SESSION['lang'] : 'com');

header("Location: http://www.example. .$lg);

par contre comment coder les autre extensions ?

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 21:55
par dunbar
La solution de dubar,
Salut zes :wink:
qu’extrêmement dépouillée
Oui effectivement

Alors voici mon idée de départ en beaucoup plus détaillé
<?php
/**
* Exemple en partant de la demande.
* @www.example.com
* @www.example.fr
* @www.example.it
* @www.example.es
* Donc le choix des langues / com, fr, it, es
*/
session_start();
//Lien GET qui permet de choisir la langue.

echo '<a href="'.$_SERVER['PHP_SELF'].'?&lang=fr">FR</a> | <a href="'.$_SERVER['PHP_SELF'].'?&lang=es">ES</a> | <a href="'.$_SERVER['PHP_SELF'].'?&lang=it">IT</a> | <a href="'.$_SERVER['PHP_SELF'].'?&lang=com">EN</a>';


	/**
	* Vérification qu'un cookie existe.
	*/
	if(iSset($_COOKIE['lang']))
	 {
	 	//-->Si il existe on attribue sa valeur a la variable de SESSION
	 	$_SESSION['lang'] = $_COOKIE['lang'];
	 }
	 elseif(iSset($_GET['lang']))//-->Si pas de cookie on vérifie si une valeur existe dans la variable GET
	 {
	    //-->Si elle existe ont attribue la valeur a la variable de SESSION
	    $_SESSION['lang'] = $_GET['lang'];

	 }
	 else
	 {
	 	//Langue par default.
	 	$_SESSION['lang'] = 'com';
	 }

//-->Ont verifie si il existe une SESSION['lang'] dans le cas contraire ont attribue une valeur par defaut.

$lang = (isset($_SESSION['lang']) ? $_SESSION['lang'] : 'com');

//-->Redirection vers la page example.$lang
header ("Location: http://www.example. . $lang);

?>
Attention un " disparaît dans le header ??? header ("Location: http://www.example. . $lang);

Re: Gestion des multiextension pour un site multilingue

Posté : 23 sept. 2010, 23:37
par sam01
Ok Dunbar,

si je te suis bien ça signifie qu' une personne vivant en Espagne, qui va taper pour la première fois :


www.example.es

va être automatiquement redirigée vers le .com (vers le site version anglais donc), puisqu'il n'y aura ni session ni cookie...

mais moi ce n'est pas ce comportement que je voudrais,

j'aimerais qu'au moment où une personne tape le site

www.example.es pour la première fois, qu'il tombe sur la version espagnole en .es et non la version anglaise en .com.

Je suis donc bien forcé d'effectuer au préalable un test sur l'url...Et ça avant le test des cookies et des session...

Tu me suis ?

Re: Gestion des multiextension pour un site multilingue

Posté : 24 sept. 2010, 12:31
par telnes
hello

utilise preg_match ou strpos pour déterminer si tu as une extension connu dans une var de $_SERVER ou __FILE__

++