IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Localisation et adresse IP


Sujet :

Silverlight

  1. #1
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut Localisation et adresse IP
    Bonjour à tous,

    J'ai réalisé un site en Silverlight disposant de deux langages Français et Anglais et ce que je voudrais c'est pouvoir automatiquement charger l'un ou l'autre des langages selon la localisation du clients.

    Basiquement, je voudrais mettre le site en Anglais pour toute IP non Française.

    Serait-ce possible en Silverlight de faire cela ?

    Cordialement MoZo

  2. #2
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Sincèrement, a quoi cela va servir? Tu as déjà la détection automatique du systeme qui est fait pour définir le langage de l'utilisateur...


    Si tu réside Au Canada(quebec), ou en belgique, toi tu veux lui mettre en anglais alors que l'utilisateur aura son système en français.

    Les .rsx ont été inventé à cet effet, je vois pas le but la, cela me parait contre productif

  3. #3
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    sauvegarde dans InitParameters l'adresse ip de ton visiteur dans l'événement Page_load du Default.aspx.cs grace à :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    Silverlight1.InitParameters = "IpAddress=" + HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

    puis va dans App.xaml.cs et ajoute le code suivant dans Application_Startup :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void Application_Startup(object sender, StartupEventArgs e) {
     
    	string ip = e.InitParams["IpAddress"];
    	//Puis la tu regarde si l'ip n'est pas française tu fait ça :
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
    	}

  4. #4
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    Citation Envoyé par Lapinpanda Voir le message
    Si tu réside Au Canada(quebec), ou en belgique, toi tu veux lui mettre en anglais alors que l'utilisateur aura son système en français.
    Je suis d'accord avec Lapinpanda, je t'es fourni une solution mais je pense qu'il faut peut être revoir les spec

  5. #5
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Citation Envoyé par Lapinpanda Voir le message
    Sincèrement, a quoi cela va servir? Tu as déjà la détection automatique du systeme qui est fait pour définir le langage de l'utilisateur...


    Si tu réside Au Canada(quebec), ou en belgique, toi tu veux lui mettre en anglais alors que l'utilisateur aura son système en français.

    Les .rsx ont été inventé à cet effet, je vois pas le but la, cela me parait contre productif
    Lapinpanda tu veux dire qu'avec mes fichier de ressources, la langue est choisi automatiquement ? Je veux dire le bon fichier de ressource est choisit automatiquement ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Mozofeuk Voir le message
    Lapinpanda tu veux dire qu'avec mes fichier de ressources, la langue est choisi automatiquement ? Je veux dire le bon fichier de ressource est choisit automatiquement ?
    Si tu utilises le système standard de localisation avec les fichiers .resx, oui, c'est automatique. Ca prendra automatiquement les ressources qui correspondent à la culture courante, ou la culture par défaut s'il n'y a pas de ressources pour la culture courante.

  7. #7
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Citation Envoyé par Mozofeuk Voir le message
    Lapinpanda tu veux dire qu'avec mes fichier de ressources, la langue est choisi automatiquement ? Je veux dire le bon fichier de ressource est choisit automatiquement ?
    c'est exactement ça.


    Tes intentions te feront perdre l'avantage des .Rsx

    Pour rappel :


    MesRessources.rsx ( si Fr ou En n'existe pas alors choisir ce fichier)
    MesRessources.fr.rsx(choisir FR)
    MesRessources.en.rsx(choisir EN)

  8. #8
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    bon ba je cours me cacher alors

    Merci de la précision !!

  9. #9
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Je n'arrive pas trop à tester si cela fonctionne et donc je suis pas sur d'avoir bien fait les choses.

    J'ai un fichier "Language.resx" qui contient les textes en Français et j'ai un fichier "Language.en-US.resx" qui contient les textes en Anglais et jusqu'à aujourd'hui, il falllait que le visiteur change manuellement la langue en cliquant sur le drapeau de son choix, le langage par défaut étant celui du "Language.resx" donc le Français.

    Sur Firefox dans les options, j'ai essayer de changer la langue (Outil/Option/Contenu/changer le language d'affichage) et de mettre en priorité le en-US mais rien n'y fait ma page reste en Français par défaut...

    Y'aurait il un truc que j'aurais oublié ?

  10. #10
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    essaye de changer la langue du système

  11. #11
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Je suis sous XP si je veux changer la langue de mon système faut que je format donc un peu la flemme. De plus je dirais que cela doit venir du navigateur client et donc que si cela ne marche pas j'ai du oublier quelque chose

  12. #12
    Membre confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Décembre 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Décembre 2010
    Messages : 126
    Par défaut
    y a pas besoin de formater pour changer la langue sous xp.

    Fait : Démarrer / Paramètres / Panneau de configuration -> Options régionales et linguistiques

    http://www.linternaute.com/pratique/...s-windows.html

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par NTIC13 Voir le message
    y a pas besoin de formater pour changer la langue sous xp.

    Fait : Démarrer / Paramètres / Panneau de configuration -> Options régionales et linguistiques

    http://www.linternaute.com/pratique/...s-windows.html
    Ca marchera pas... ça va changer la CurrentCulture (qui affecte les formats de nombres, de date, etc), mais pas la CurrentUICulture (qui détermine la langue des ressources à utiliser)

    Le plus simple pour tester c'est de forcer la CurrentUICulture dans le code :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");

  14. #14
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    En changeant et le système et la langue sur Firefox, je me retrouve encore avec le français d'affiché.

    Mon fichier "Language.resx" est en théorie celui utilisé par defaut ?

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Mozofeuk Voir le message
    En changeant et le système et la langue sur Firefox, je me retrouve encore avec le français d'affiché.
    Nos posts ont du se croiser, regarde ma dernière réponse

    Citation Envoyé par Mozofeuk Voir le message
    Mon fichier "Language.resx" est en théorie celui utilisé par defaut ?
    Oui

  16. #16
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Pour info ce n'est pas la langue de ton navigateur qui compte mais celle du système.

    Et comme l'a conseillé tomlev, le mieux c'est de surcharger.(fait le dans le code de app.xaml)

  17. #17
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Bon je viens de faire quelque test et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.CurrentThread.CurrentCulture
    Correspond au langage du système que je peux modifier via panneau de config

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.CurrentThread.CurrentUICulture
    Correspond au langage affiché sur application SL.

    Ainsi en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
    //ou
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    Dans le App.xaml.cs, je change bien le langage de mon application.

    Par contre modifier le langage du système ne change en rien le langage affiché au démarrage de mon appli, ainsi si je change le langage de mon système en "en-US", au démarrage de mon appli, je suis toujours en français. J'ai donné la possibilité à mon utilisateur de changer la langue via un bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    void Drapeau_US_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                Helpers.LangHelper MyLangHelper = new Helpers.LangHelper();
                MyLangHelper.ChangeCulture("en-US");
                ContentFrame.Refresh();
                ChangeLabelButton();
            }
     
            void Drapeau_FR_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                Helpers.LangHelper MyLangHelper = new Helpers.LangHelper();
                MyLangHelper.ChangeCulture("fr-FR");
                ContentFrame.Refresh();
                ChangeLabelButton();
            }
    La classe langHelper étant la classe décrite dans le tuto suivant (la méthode ChangeCulture changeant juste la CurrentUICulture et la CurrentCulture :

    http://broux.developpez.com/articles...-localisation/

    Avec mes boutons je change bien le langage affiché sur mon appli mais toujours rien au démarrage de l'appli.

    J'ai un peu modifié mes fichier ressource puisque j'ai mis maintenant le fichier contenant l'anglais en fichier par défaut "Language.resx" et le Français dans un fichier "Language.fr-FR.resx", j'ai aussi définit le langage par defaut de l'application sur "en-US" (dans assembly info) et j'ai toujours mon application qui démarre en Français, ce qui me fait dire qu'il choisit quand même le bon fichier automatiquement. Par contre pas moyen de tester pour faire comme si j'était dans un autre pays ...

  18. #18
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Faut savoir que cela sera fait automatiquement et que tu n'aura pas besoin de tester que cela marche.


    Sur XP j'ai plus aucune idée de comment on procède, mais sur Seven cela marche très bien j'ai pu le tester en modifiant la langue du système. Donc rassure toi.

  19. #19
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Ok je testerais chez moi se soir j'ai un 7.

    Juste pour être sur que j'ai bien compris.

    Mon "Language.resx" étant mon fichier de ressource en Anglais, et le langage par défaut de l'application étant celui-ci, mon site devrai s'afficher automatiquement en Anglais pour toutes connexion avec un système configurer autrement que en "fr-FR" ?

    Quand est-il des pays Francophone ?
    fr-BE French - Belgium
    fr-CA French - Canada
    fr-FR French - France
    fr-LU French - Luxembourg
    fr-MC French - Monaco
    fr-CH French - Switzerland

    Prendront-ils la config "fr-FR" ou bien la config par défaut "en-US" ?

  20. #20
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Tu pose une bonne question.

    c'est pour cela que je t'avais conseillé le resource.fr.rsx et non resource.fr-FR.rsx.

    En effet tu as [nomfichier][langue][region].rsx


    Donc fr-FR c'est pour la france. fr-BE pour la belgique.

    Si je suis belge, et que tu as créé un fr-FR alors il va charger le en-US.


    J'aurai bien aimé par contre retrouver l'article MSDN qui parler de cela pour confirmer(ou pas) ce que je dis...

    la

Discussions similaires

  1. Localisation par adresse MAC
    Par saw-next dans le forum Windows XP
    Réponses: 3
    Dernier message: 07/11/2010, 19h16
  2. [PHP 5.2] Localiser des adresses postales sur une carte
    Par arthuro45 dans le forum Langage
    Réponses: 3
    Dernier message: 30/08/2010, 15h29
  3. Localisation d'adresse IP
    Par neospirit dans le forum Langage
    Réponses: 5
    Dernier message: 18/10/2009, 14h29
  4. Google Map localiser une adresse
    Par thierrybatlle dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/06/2009, 13h29
  5. GMap localiser par adresse postale ?
    Par Shypster dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 31/07/2008, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo