Django-fr

Forum

#1 21-05-2011 12:30:10

serge
Membre
Inscription : 13-05-2011
Messages : 6

[résolu] LANGUAGES ne fonctionne pas sur IE7

Bonjour. J'ai hésité avant d'ouvrir un nouveau fil, vu que j'en avais créer un auparavant. Mais si quelqu'un effectue une recherche sur le même thème, il trouvera la probable solution plus rapidement. Bref.

Depuis mon précédent problème, j'ai avancé. À tel point que j'ai déployé mon site et tout fonctionne "presque" à la perfection. Un point me gène toutefois.

C'est un site en français ET vietnamien. J''utilise donc les possibilités de django pour les langages ( django est vraiment génial et intuitif sur ce point ).
Seulement, je suis presque constamment sous Debian avec Firefox comme navigateur. Avec cette configuration, tout roule.
J'ai donc fait des tests avec Virtualbox et WindowXP. Avec Firefox, de nouveau pas de problème. Avec Internet Explorer 7, ça bloque.

En gros, j'ai dans mes pages html un formulaire composé de deux boutons pour sélectionner le langage courant. Quand un des deux boutons est activée, cela redirige vers une vue qui renvoie la page "précédente" avec le langage correspondant.
Voilà le code :

# views.py
def select_language(request):
    next = request.META.get('HTTP_REFERER', None)
    response = HttpResponseRedirect(next)
    if request.method == 'POST':
        lang_code = request.POST.get('language', None)
        if lang_code and check_for_language(lang_code):
            if hasattr(request, 'session'):
                request.session['django_language'] = lang_code
            else:
                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
    return response

Je pense que ça coince au niveau au niveau du response.set_cookie. Je n'ai pas de LANGUAGE_COOKIE_NAME dans mon settings.py, parce que je ne sais pas quoi y mettre. Selon la doc, c'est configuré à django_language par défaut.
Comment sortir de cette situation ?

En vous remerciant par avance.

Edit: pour je ne sais quelle raisons, je n'utilisais pas le truc de base

(r'^i18n/', include('django.conf.urls.i18n')),

Je viens de le faire, et ça ne fonctionne toujours pas sous IE7. Je crains surtout pour IE6 qui est installé en masse au Vietnam.

Dernière modification par serge (21-05-2011 13:30:18)

Hors ligne

#2 21-05-2011 13:29:59

serge
Membre
Inscription : 13-05-2011
Messages : 6

Re : [résolu] LANGUAGES ne fonctionne pas sur IE7

Bon, le problème, c'était surtout que je n'y connais rien à Window. Je n'avais pas compris que la dernière version de IE était la 8. Je pensais que c'était encore la 7.
En plus, le window virtuel n'as jamais été mis à jour depuis plus d'un an je crois.

Avec IE8, ça fonctionne. Il a fallu que je redémarre le pc pour mettre à jour IE d'ailleurs, ce qui est passablement stupide, mais bon, ce n'est pas le sujet.

Maintenant, je ne sais pas comment tester IE6. Je suppose que si les cookies fonctionnent, ça ne devrait pas poser de problème. Et j'imagine que si les utilisateurs utilisent autre chose que IE6, ils ont du passer à IE8.

Désolé pour le monologue et la question stupide.

Dernière modification par serge (21-05-2011 13:31:08)

Hors ligne

#3 21-05-2011 14:15:58

abki
Membre
Lieu : Paris
Inscription : 11-08-2010
Messages : 49
Site Web

Re : [résolu] LANGUAGES ne fonctionne pas sur IE7

Désolé pour le monologue et la question stupide.


faut pas s'excuser pour si peu smile

bon courage pour la suite.

Amirouche

Hors ligne

#4 22-05-2011 20:01:49

luc
Membre
Lieu : Loire (42)
Inscription : 19-02-2011
Messages : 15
Site Web

Re : [résolu] LANGUAGES ne fonctionne pas sur IE7

Bonsoir,

Juste qq précisions sur Internet Explorer:

* La dernière version est la 9 et non pas la 8. D'apres statcounter (http://gs.statcounter.com/#browser_vers … 201104-bar), IE8 est le plus répandu mais il reste encore pas mal de 6, 7 et la 9 commence juste

* Pour tester les différentes versions de IE, je recommande IETester http://www.my-debugbar.com/wiki/IETester/HomePage

luc

Hors ligne

#5 23-05-2011 08:57:18

Jean Boussier
Membre
Inscription : 11-09-2010
Messages : 13

Re : [résolu] LANGUAGES ne fonctionne pas sur IE7

Le 21 mai 2011 à 13:30, serge a écrit :

> Avec Internet Explorer 7, ça bloque.

Ça bloque ? C'est à dire ? tu te retrouve avec une page blanche ?

> Voilà le code :
>
>

> # views.py
> def select_language(request):
>     next = request.META.get('HTTP_REFERER', None)
>     response = HttpResponseRedirect(next)
>     if request.method == 'POST':
>         lang_code = request.POST.get('language', None)
>         if lang_code and check_for_language(lang_code):
>             if hasattr(request, 'session'):
>                 request.session['django_language'] = lang_code
>             else:
>                 response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
>     return response
>

Àhma, il n'est pas impossible que pour une raison quelconque, ton IE7 n'ai pas envoyé le referer, à ce moment là tu te retrouve à rediriger vers None, ce qui n'est pas un comportement souhaitable.
De plus il existes des extensions Firefox qui permettent de ne jamais transmettre le referer. Donc plutôt que None tu devrait utiliser '/' comme valeur par défaut.

Hors ligne

#6 24-05-2011 15:11:35

serge
Membre
Inscription : 13-05-2011
Messages : 6

Re : [résolu] LANGUAGES ne fonctionne pas sur IE7

luc a écrit :

Bonsoir,
Juste qq précisions sur Internet Explorer:
* La dernière version est la 9 et non pas la 8. D'apres statcounter (http://gs.statcounter.com/#browser_vers … 201104-bar), IE8 est le plus répandu mais il reste encore pas mal de 6, 7 et la 9 commence juste
* Pour tester les différentes versions de IE, je recommande IETester http://www.my-debugbar.com/wiki/IETester/HomePage
luc

Bon, j'ai clairement du retard au niveau de Window. J'étais sûr après mon erreur que la 8 était la nouvelle version. Mais d'après ce que tu dis, il y a carrément une version 9.
En tout cas, merci pour le logiciel. Je vais tester cela en machine virtuelle.

Jean Boussier a écrit :

Ça bloque ? C'est à dire ? tu te retrouve avec une page blanche ?

Non, je me retrouvais sur la même page, sans aucune différence de langage. En l'occurence, la langue par défaut était le français, et il était impossible de passer en vietnamien.
D'ailleurs, joie de trouver que Django est également en vietnamien dans l'interface d'administration smile

Jean Boussier a écrit :

Àhma, il n'est pas impossible que pour une raison quelconque, ton IE7 n'ai pas envoyé le referer, à ce moment là tu te retrouve à rediriger vers None, ce qui n'est pas un comportement souhaitable.
De plus il existes des extensions Firefox qui permettent de ne jamais transmettre le referer. Donc plutôt que None tu devrait utiliser '/' comme valeur par défaut.

C'est fort possible. Mais vu que je viens de mettre à jour ma version d'Internet Explorer, je n'ai plus le problème, donc, je ne peux plus tester.
En plus, je dois avouer que je ne m'y connais pas trop en http et consort. Donc, le HTTP_REFERER, je n'y avais pas prêté plus d'attention que cela avant ta réponse.


En tout cas, mon site est "terminé" (si je puis dire, je sais que ce n'est jamais terminé dans l'absolu). L'idée que nous en avions est belle et bien présente. Et ça, j'en suis content, grâce en énorme partie à Django.
Merci de vos réponses !

Hors ligne

Pied de page des forums