8797 sujets

Développement web côté serveur, CMS

Voilà je suis en train de coder un site multilangue. L'internaute quand il arrive sur le site doit sélectionner un pays puis une agence (la plus proche de chez lui). une fois qu'il a choisi ceci il peut naviguer sur le site.
Pour stocker le num de l'agence et le pays j'ai utiliser les SESSIONS.
Le souci : un navigateur avec les cookies bloqué ne peut pas décoller de la page d'index (je renvoye sur l'index si la session n'existe pas).
J'imagine que Google et les autres moteurs de recherche vont eux aussi être bloqué sur la page d'accueil du site.
Donc en gros c'est nul.
y a t'il une solution tout en utilisant les SESSIONS??
Autres idées?
Modifié par Spir (23 Aug 2005 - 18:01)
Bien sur que non Smiley biggrin les forums sont tous indexé par les mmoteurs de recherche, malgré les cookies, un de mes sites à un accès réservé aux membres avec un cookie est indexé lui aussi normalement par google & co Smiley cligne
Salut,

Il faut que tu gère autrement le multilangage. Ton site doit être accessible même si les sessions n'existent pas. Je te propose d'afficher le site en FR si la session l'indique ou si il n'existe pas de session. Si une session existe et indique une autre langue, il y a plus qu'à.
Flyman30 a écrit :
Bien sur que non Smiley biggrin les forums sont tous indexé par les mmoteurs de recherche, malgré les cookies, un de mes sites à un accès réservé aux membres avec un cookie est indexé lui aussi normalement par google & co Smiley cligne


Ok. Mais alors pourquoi ca ne fonctionne pas si les cookies ne sont pas activé??
solo a écrit :
Salut,

Il faut que tu gère autrement le multilangage. Ton site doit être accessible même si les sessions n'existent pas. Je te propose d'afficher le site en FR si la session l'indique ou si il n'existe pas de session. Si une session existe et indique une autre langue, il y a plus qu'à.


Oui c'est ce que j'ai essayé de faire... Il faut que je revoi le code.
Mais si les cookies ne sont pas activé ca merde; c'est normal ou c'est mon code qui est puant?
tu peux aussi faire passer un paramètre dans l'url (tapge.php?langue=fr) que tu peux à la limite faire plus jolie avec l'url rewriting (/fr/tapage.php).

Mais ça reste quand meme assez sale suivant les gouts.
(fais moi signe si tu as besoin du code pour l'url rewriting)
Bonjour,

Il ne faudrait pas oublier "HTTP_ACCEPT_LANGUAGE" qui te permet (si mes souvenirs sont bons... mais je vais les rafraîchir ces jours prochains car je dois gérer différentes langues) de détecter le(s) langage(s) pour lequel le navigateur est configuré.

Typiquement cela devrait donner environ ceci :

$langue = getenv("HTTP_ACCEPT_LANGUAGE");

qui te donne un array que tu exploses afin de retirer une suite du type : fr en de ... soit ce qui te sera utile comme variable pour spécifier une langue soit pour tirer le nécessaire de la base de donnée soit pour indiquer un chemin de fichier (pages_" .$langue. "/index.php).

En notant que la langue indiquée en premiet dans l'array est la langue principale de l'utilisateur (en principe).
jcm a écrit :
Bonjour,

Il ne faudrait pas oublier "HTTP_ACCEPT_LANGUAGE" qui te permet (si mes souvenirs sont bons... mais je vais les rafraîchir ces jours prochains car je dois gérer différentes langues) de détecter le(s) langage(s) pour lequel le navigateur est configuré.

Typiquement cela devrait donner environ ceci :

$langue = getenv("HTTP_ACCEPT_LANGUAGE");

qui te donne un array que tu exploses afin de retirer une suite du type : fr en de ... soit ce qui te sera utile comme variable pour spécifier une langue soit pour tirer le nécessaire de la base de donnée soit pour indiquer un chemin de fichier (pages_" .$langue. "/index.php).

En notant que la langue indiquée en premiet dans l'array est la langue principale de l'utilisateur (en principe).


Oui j'ai lu ca je ne sais plus ou. le truc c'est que mes différentes langues sont géré dynamiquement (ajout/suppression/modification) enfin c'est assez compliqué. il faudrait que le nom de la langue dans la BDD soit le meme que le résultat du HTTP_ACCEPT_LANGUAGE.

Merci mille fois pour votre aide très précieuse. Je vais bosser là dessu...
Spir a écrit :
le truc c'est que mes différentes langues sont géré dynamiquement (ajout/suppression/modification) enfin c'est assez compliqué. il faudrait que le nom de la langue dans la BDD soit le meme que le résultat du HTTP_ACCEPT_LANGUAGE.


La dénomination des langues est normalisée dans http://www.loc.gov/standards/iso639-2/langcodes.html

Pour son utilisation (choix entre les codes de langue à 3 ou 2 caractères) voir http://blog-and-blues.org/weblog/2004/10/20/319
Modifié par Laurent Denis (11 Aug 2005 - 12:46)
Modérateur
Flyman30 a écrit :
Bien sur que non Smiley biggrin les forums sont tous indexé par les mmoteurs de recherche, malgré les cookies, un de mes sites à un accès réservé aux membres avec un cookie est indexé lui aussi normalement par google & co Smiley cligne


Oui, les forums seront indexés, à condition biensûr que l'accès ne soit pas restreint aux personnes identifiées.

Je crois qu'en PHP, tu peux aussi spécifier au serveur de passer les ID de session par l'url si les cookies ne sont pas activés, ce qui fait en sorte que tu peux utiliser les variables de session quand même, cookie ou non. Quoique je préfère la suggestion de Clausan.

Flyman30, tu as fais un accès réservé où les personnes doivent s'identifier et google & co arrivent quand même à indexer les pages ? Soi j'ai mal compris ce que tu voulais dire, soi tu as un grave problème de sécurité dans ton application. Smiley confus À moins que tu es volontairement donné accès à google pour qu'il index les pages afin d'attirer les visiteurs, pour les obliger, eux, à s'inscrire. C'est un cas que je vois souvent sur des forums de développeurs.
Modifié par Merkel (11 Aug 2005 - 13:00)
Spir a écrit :


Oui j'ai lu ca je ne sais plus ou. le truc c'est que mes différentes langues sont géré dynamiquement (ajout/suppression/modification) enfin c'est assez compliqué. il faudrait que le nom de la langue dans la BDD soit le meme que le résultat du HTTP_ACCEPT_LANGUAGE.
. . . . . ...


Rien de plus facile !

Un "switch" résoudra cela en 1/2 coup de cuiller !
Finalement je passe la langue par la méthode GET ou POST suivant le lien ou si il s'agit d'un formulaire... Si la variable n'est pas passé par ces deux méthode alors je fais ceci :

           $les_langues = explode( ",", $_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ;

           switch( $les_langues[0] )
           {
                    case 'en':
                             $lang = $les_langues[0] ;
                             break ;

                    case 'de':
                             $lang = $les_langues[0] ;
                             break ;

                    case 'fr':
                             $lang = $les_langues[0] ;
                             break ;

                    case 'it':
                             $lang = $les_langues[0] ;
                             break ;

                    case 'es':
                             $lang = $les_langues[0] ;
                             break ;

                    default:
                             $lang = "fr" ;
                             break ;
           }

de cette manière je limite les langues du site...
J'ai préféré cette solution plus simple pour l'instant.
Merci pour votre aide précieuse.
Modifié par Spir (23 Aug 2005 - 18:02)