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

VB.NET Discussion :

[VB.NET] Comment recupérer une référence à partir du nom ?


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 40
    Points
    40
    Par défaut [VB.NET] Comment recupérer une référence à partir du nom ?
    Bonjour,

    Je developpe une application et je voudrais la rendre multilingue. J'ai donc créé des fichiers de langue (langFR.txt, langEN.txt...) de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Pour l'anglais :
    btNouvProj=New Project
    btPrem=First
    Label1=Projects Management
    ...
     
    Pour le français :
    btNouvProj=Nouveau Projet
    btPrem=Premier
    Label1=Gestion des projets
    ...
    Donc je marque en fait dans mon fichier texte [nom de l'objet]=[Texte]. Ensuite dans mon programme, lorsque l'utilisateur choisi une langue, j'ouvre le fichier et je lis toutes les informations. Je me retrouve alors avec une variable nommé ObjName de type String qui contient le nom de l'objet dont il faut changer la propriété Text.

    Je voudrais donc savoir si il est possible sous VB.NET de récupérer une référence de l'objet à partir de son nom ?

    Pour l'instant la seule methode que j'ai trouvé c'est de parcourir dans un For Each tous les objets de ma form avec Form.Controls et de comparer le nom de chaque objet avec celui de ma variable. Mais cette boucle est plutôt longue et lourde...

    Existe-t-il une autre solution ?

    Merci de votre aide,

    Shinjuku.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    Je ne sais pas s'il est possible de récupérer un objet a partir de son nom sans faire cette boucle qui t'embete. Mais meme si avec la reflexion on peut faire plein de choses, je doute que ce soit une bonne idée à la base, surtout car en .Net il y a des choses de prévues pour l'internationalisation des appli. Je pense aux assemblies satellites en particulier.
    Cela dit je ne suis pas un expert et je n'ai jamais eu à en utiliser, je te laisse regarder de ce coté en cherchant un peu sur google "sattelite assembly" , sinon je doute pas que qqun d'autres ici saura te donner plus d'explications

  3. #3
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    pour localiser ton application je te conseille l'article de Morpheus :

    http://morpheus.developpez.com/localisationdotnet/

    tu as tout ce que tu cherches dedans.
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    J'ai effectivement trouvé ce systeme pour faire mon application multilingue, mais je voulais essayer de passer par des fichier texte simple pour que la traduction soit plus simple à effectuer...

    Mais je crois que je vais quand même regarder du coté des sattelite assembly et de http://morpheus.developpez.com/localisationdotnet/.

    Merci beaucoup pour votre aide,

    Shinjuku.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Tu peux créer un fichier de ressource complet dans la langue de Molière, et puis le dupliquer au dernier moment dans la langue voulu :

    ex : tu dupliques Resources.resx (fr) en Resources.en-US.resx (pour l'anglais)

    Puis il suffit de change la langue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
            Select Case IndexDeLangue
                Case 0 : System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("fr-FR")
                Case 1 : System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-US")
            End Select
     
    ' Tu réaffect la ressource aux controls
            Label1.Text = My.Resources.MaRessource
    Damien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2011, 10h53
  2. Réponses: 2
    Dernier message: 26/11/2008, 20h01
  3. [Vb.net] Comment faire une liste à partir d'une string
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/10/2006, 14h15
  4. Réponses: 2
    Dernier message: 19/08/2006, 12h47
  5. [C++.Net] Comment créer une librairie à partir d'un projet ?
    Par guillaume16 dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 30/06/2006, 16h38

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