Gestion des multiextension pour un site multilingue

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 : Gestion des multiextension pour un site multilingue

Re: Gestion des multiextension pour un site multilingue

par telnes » 24 sept. 2010, 12:31

hello

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

++

Re: Gestion des multiextension pour un site multilingue

par sam01 » 23 sept. 2010, 23:37

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

par dunbar » 23 sept. 2010, 21:55

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

par sam01 » 23 sept. 2010, 12:34

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

par zeus » 23 sept. 2010, 11:57

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

par sam01 » 23 sept. 2010, 09:38

un site par langue.

Re: Gestion des multiextension pour un site multilingue

par stealth35 » 23 sept. 2010, 00:09

donc ?
un site par langue ? serveur différent ? virtual directory ?

Re: Gestion des multiextension pour un site multilingue

par sam01 » 22 sept. 2010, 23:27

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

par stealth35 » 22 sept. 2010, 17:36

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

par sam01 » 22 sept. 2010, 17:27

Si la langue n'est pas dans session...

Re: Gestion des multiextension pour un site multilingue

par stealth35 » 22 sept. 2010, 16:57

en quoi ca réponse n'est pas suffisante ? :shock:

Re: Gestion des multiextension pour un site multilingue

par sam01 » 22 sept. 2010, 16:55

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

par dunbar » 22 sept. 2010, 16:39

Salut,
Un truc du genre
$lg = (isset($_SESSION['lang']) ? $_SESSION['lang'] : 'com');

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

Gestion des multiextension pour un site multilingue

par sam01 » 22 sept. 2010, 16:20

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.