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

Windows Forms Discussion :

[c#][Winform] fichiers resx


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 77
    Par défaut [c#][Winform] fichiers resx
    Bonjour tout le monde,

    Je cherche sur le net vainement une bonne explication sur les fichiers resources. J'ai une solution winform avec plusieurs projets. Pour tous ces projets je voudrais juste un seul fichier ressources qui contient rien d'autres que mes messages d'erreurs.

    Pouvez-vous m'aider en m'indiquant comment récupérer ce fichier et ses valeurs? Y-a-til un site qui explique étape par étape ce qu'il faut faire? Je sais que c'est pas bien difficile, je fais un bloquage dessus je crois

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Ceci devrait être une bonne piste: http://morpheus.developpez.com/LocalisationDotnet/


    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 77
    Par défaut
    Merci beaucoup c'est exactement ce qu'il me fallait

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    La prochaine fois, pense au tag Résolu

  5. #5
    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
    Petite parenthèse sur ce point...

    La partie un peu laborieuse dans la localisation, c'est d'écrire la fonction AfficherTexte mentionnée dans le tutoriel, surtout s'il y a beaucoup de controles...

    En regardant dans le fichier Form1.Designer.cs (ou Form1.Designer.vb), on voit que le code générer utilise la fonction ApplyResources. Cette fonction applique dynamiquement à l'objet spécifié les propriétés présentes dans le fichier de ressources, qui doivent s'appeler "<nom de l'objet>.<nom de la propriété>".

    Donc en fait il suffit de récupérer tous les appels à ApplyResources dans InitializeComponent(), et de les coller dans la fonction AfficherTexte ! En plus, si des propriétés autres que les textes (par exemple images, etc...) sont localisées, elles seront aussi prises en compte.

    Si en plus on est paresseux, comme moi, on peut créer une macro VS qui extrait tous les appels à ApplyResources des fichiers designer, et génère un fichier de classe partielle avec la méthode AfficherTexte. Comme ça plus la peine de se prendre la tête

    Petite limitation quand-même : ça ne marche que pour les propriétés définies dans le designer. Pour les autres, il faudra les gérer soi-même.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 93
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ...Si en plus on est paresseux, comme moi, on peut créer une macro VS qui extrait tous les appels à ApplyResources des fichiers designer, et génère un fichier de classe partielle avec la méthode AfficherTexte. Comme ça plus la peine de se prendre la tête ...
    Moi je ne suis pas paresseux mais je suis sans doute un des membres les plus agés de ce forum et je fatigue vite. Alors, si tu pouvais m'envoyer ta macro, ça me rendrait service.
    Merci par avance.

  7. #7
    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
    Je vais voir si je la retrouve... là je suis au taf, je vais pas avoir le temps, mais j'essaierai de voir ça ce soir. Mais je te préviens, il faudra sans doute faire quelques adaptations, c'est un peu brouillon mon truc...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 93
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Merci tomlev pour ton aide.

    Mais ne perds pas trop de temps à rechercher cette macro. Entre temps, je suis parti sur une autre solution (la classe de traduction proposée par theMonz31) et j'ai l'impression que je m'en sors mieux qu'avec les fichiers ressources.

    A+

  9. #9
    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
    bon ben je l'ai retrouvée
    Voilà en gros ce qu'elle fait :
    - pour chaque fichier *.Designer.cs :
    -- extraction des appels à ApplyResources
    -- génération d'un fichier de classe partielle *.Language.cs, avec une méthode qui réalise tous les appels à ApplyResources

    Ensuite, il n'y a plus qu'à appeler la fonction générée pour changer de langue.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 93
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Merci tomlev. Je vais regarder celà attentivement, d'autant plus que je dois dire que les macros, je ne vois pas très bien comment ça se goupille en C#

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

Discussions similaires

  1. Partager fichier .resx
    Par Lolux dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 04/10/2006, 16h08
  2. [c#] Utiliser un fichier *.resx global
    Par AdriM dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/06/2006, 15h17
  3. [VB.NET] Fichiers *.resx
    Par neuropathie dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/05/2006, 12h48
  4. [C#][Vs2005] utilisation des fichiers resx
    Par camilero dans le forum Windows Forms
    Réponses: 12
    Dernier message: 13/04/2006, 14h43
  5. [WinForms] Fichier ressource + icone
    Par freddyboy dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 15/04/2005, 17h06

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