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 :

Quels sont les avantages à utiliser la propriété "Localizable" ?


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut Quels sont les avantages à utiliser la propriété "Localizable" ?
    Bonjour,

    Je viens de me pencher sur la localisation en .NET et je reste perplexe.

    Une fois qu'on a compris comment l'utiliser, ça fonctionne évidemment très bien.

    Mais quels sont les avantages à utiliser ce système plutôt que de le gérer soi-même avec une méthode qui prend en paramètre le nom du formulaire à afficher et la langue à utiliser ?

    A chaque chargement/affichage d'un formulaire,il faut préciser la culture à utiliser et appeler une méthode qui affecte à chaque contrôle la valeur de la ressource associée.

    Auparavant, je créais une méthode avec comme suit :
    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
    16
     
        Public Sub TranslateCtl(ByVal formName As String, ByVal langue As Constantes.e_langue)
            Select Case formName
                Case "nomDeLaForm"
                    Select Case langue
                        Case Constantes.e_langue.francais
                            With LaFormQuiVaBien
                                Controle1.Text = "Le bon texte en français"
                            End With
                        Case Constantes.e_langue.nederlands
                            With LaFormQuiVaBien
                                Controle1.Text = "De goede text in nederlands"
                            End With
                    End Select
            End Select
        End Sub
    Cela revient finalement au même puisqu'avec la localisation, on appelle une méthode qui va chercher les textes dans des fichiers ressources via un resourcemanager.

    Alors j'imagine qu'il doit bien y avoir des avantages à utiliser cela sinon les gars de Microsoft ne se seraient probablement embêter à créer ce système si l'implémentation d'une simple méthode pourrait faire l'affaire.

    Quelqu'un peut-il m'éclairer sur ce sujet ?

    Griftou.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    ca permet de faire un fichier de ressources externe (alors que toi c'est dans l'exe)
    et donc de modifier les traductions sans recompiler, ou d'ajouter une langue en ajoutant un fichier à côté de l'exe

    de plus ca doit prendre en compte les textes paramétrés
    (genre "Voulez vous supprimer ces 5 éléments", en ["Voulez vous supprimer ces %1 éléments",5])

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Cela crée effectivement une dll par langue dans un répertoire spécifique à la langue. Mais avec quoi faut-il éditer ce fichier ? J'ai tenté de l'ouvrir avec notepad++ pour voir mais c'est bien sûr inutilisable (enfin c'est pas trivial quoi...).

    Avec quel programme faut-il éditer ce fichier alors pour ne pas avoir à recompiler ? J'ai tenté d'aller cherche devenv.exe mais ça ne me donne pas accès aux traductions...

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    à en croire google, c'est des fichiers .resx qui sont compilables en dll
    les fichiers .resx sont modifiables par vs (et surement en xml)

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Le fichier resx est bien un fichier xml et je peux donc l'éditer assez facilement.

    Mais ce n'est pas ce fichier qui se trouve dans le répertoire debug (ou release). Dans ce répertoire, ce sont des dll et donc pas en xml. Du coup, pour l'éditer facilement, je peux me brosser...

    Ou alors il faut mettre autre chose que embedded resource dans la propriété build action du fichier mais je ne suis pas encore penché sur les implications de ces différentes possibilités. J'ai toujours laisser VS gérer les choses jusqu'ici.

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    je suis pas expert en ressource et en localization
    mais tu peux modifier le resx dans vs, ou alors le modifier à la main et appeler resgen qui te fera la dll à partir du resx
    ensuite il suffit de remplacer la dll dans le dossier et ca marche

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Donc en gros si je comprends bien, il faut de toute façon recompiler le resx en dll. Donc autant tout recompiler pour être sûr que ça merde pas non ? Après tout, c'est pas comme si compiler l'application entière prenait 2 jours de plus...

    Conclusion, je n'arrive pas à y voir l'avantage. Pire, ici si une personne malveillante ou stupide venait à supprimer une dll, il n'y aura plus aucun texte dans la langue correspondante...

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    à ton niveau tout recompiler ne pose peut être pas de soucis
    mais vs est un outil qui s'adresse à un large public, et à un haut niveau, quand il y a des équipes entières sur un même exe, recompiler un fichier resx ou recompiler tout le programme ca n'a rien à voir !
    remplacer un fichier resx ne pourra jamais faire planter un exe, alors qu'en recompilant tout si une personne a modifié une ligne quelques part ca peut faire un bug qui se déploie ...

Discussions similaires

  1. Quels sont les avantages d'utiliser CUDA dans le développement de jeux?
    Par geektoo dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 20/02/2015, 18h27
  2. Quels sont les avantages de l'utilisation d'interfaces ?
    Par Blowdi dans le forum Design Patterns
    Réponses: 17
    Dernier message: 05/11/2009, 22h28
  3. Réponses: 3
    Dernier message: 12/08/2005, 09h14
  4. Quels sont les avantages de dériver d'un TComponent ?
    Par WebPac dans le forum Composants VCL
    Réponses: 17
    Dernier message: 18/03/2005, 09h07

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