Un petit blanc.. (a la recherche d'un design pattern)

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 : Un petit blanc.. (a la recherche d'un design pattern)

par Berzemus » 07 mai 2008, 09:09

:oops:

*relis scrupuleusement les règlements*

par Truc » 07 mai 2008, 08:51

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.


Non mais tout le monde est concerné.... y a pas de raison :-*
J'aime bien gronder les ViPHP :langue:

Vive le Standard :fete:

par Berzemus » 06 mai 2008, 19:13

oui, c'est vrai qu'il me reste l'opérateur ternaire.. je regarderais ça demain, tranquillement (d'autant qu'il commence à faire chaud au boulot). Et si je trouve une solution sexy, je la mettrais dans "contribution", direct (vu que je compte en faire quelque chose de réutilisable).

Au fait, STANDARD CHAMPION !!

par AB » 06 mai 2008, 19:06

Un p'tit blanc... oui c'est sûr, après la mirabelle d'Albat et les incantations de soeur charlotte, faut bien ça pour digérer :lol: :lol:

Bon pour la peine, je donne mon vieux code pas beau mais néanmoins fonctionnel :
$lang_traduites = array(0 => 'en', 1 => 'fr');
$langue_defaut = $lang_traduites[0];

$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,2));

$lang =  !empty($_COOKIE['lang'])? $_COOKIE['lang'] : 0;
$lang =  !empty($_GET['lang'])? $_GET['lang'] : $lang;
$lang =  !empty($lang)? $lang : $lang_navig ;
$lang =  in_array($lang,$lang_traduites)? $lang : $langue_defaut;

//envoi du cookie
if ((!empty($_GET['lang']) && in_array($_GET['lang'],$lang_traduites)) && (empty($_COOKIE['lang']) || (isset($_COOKIE['lang']) && $_COOKIE['lang'] != $_GET['lang']))) setcookie('lang', $_GET['lang'], time() + 3600 * 24 * 365);

Quand tu auras fait ton code tout beau, fait nous le voir et change un peu le titre de ton message, ça permettra aux prochains visiteurs de pouvoir profiter de ce topic avec une recherche facilitée :wink:
Sinon, y'a l'aspirine aussi qui marche bien :P :lol:

par Cyrano » 06 mai 2008, 17:41

Regarde ce qu'il y a dans $_SERVER["HTTP_ACCEPT_LANGUAGE"], ça pourrait se révéler fort instructif ;)

Un petit blanc.. (a la recherche d'un design pattern)

par Berzemus » 06 mai 2008, 16:29

Coucou tout le monde.

J'ai un blanc.. je cherche un pattern, mais je ne le trouve plus..

Le cas est classique, il s'agit de déterminer la langue d'une page..

Il faut donc:
  • Vérifier les paramètres dans l'url
  • Ou vérifier le cookie
  • Ou déterminer le langage du navigateur
  • Ou appliquer la langue par défaut
Non, c'est pas difficile, mais j'ai pas envie de faire une succession de if/elseif. Je veux du beau, de l'art, du rub.. non, je l'ais pas dit.

La je me suis dit un while avec un switch dedans, ça pourrait marcher (tant que langue pas défini, continue le switch, avec une simple incrémentation pour passer de case en case), mais c'est pas encore assez "joli". Je suis sur d'avoir déjà vu une approche sympathique, ici ou dans l'un ou l'autre design pattern, mais je bloque.. vous avez une idée ?