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 :

Traduction d'une appli : pb avec le .resx


Sujet :

VB.NET

  1. #21
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    Comme promis je reviens vers vous avec une bonne nouvelle : la méthode de Plume marche !!

    Je vous la reformule telle que je l'ai mise en oeuvre. N'hésitez pas à me corriger ou à faire des commentaires car je n'ai peut-être pas optimisé, et comme vous allez le voir, il y a quand même des subtilités que je n'ai pas réussi à éviter (il doit pourtant y avoir un moyen.


    Donc voici la méthode :

    1°/ dans votre form (a priori conçu en français qui va donc être votre langue par défaut), vous modifiez les 2 propriétés comme suit :
    Localizable = true
    Language = English

    2°/ Dans le designer vous traduisez tout ce qui apparaît dans le form (labels, tooltips, boutons etc...). Dès que vous modifiez un truc, un fichier form1.en.resx apparait en aval de form1 dans l'explorateur de solution, à condition d'afficher tous les fichiers, en plus du fichier form1.resx. Il faut penser à modifier le chemin du HelpProvider si vous en avez un
    Par exemple si HelpProvider1.HelpNameSpace = "fr\help_fr.chm" pour la version française, vous mettez :
    HelpProvider1.HelpNamespace = "en\help_en.chm" pour pointer vers le fichier d'aide en version anglaise.

    3°/ Remettre ensuite la propriété Language = (par défaut) ; je ne sais pas si c'est important, mais je pense que oui . Quand vous modifierez ensuite votre form, je vous conseille de toujours commencer par la version par défaut, puis de passer à la version anglaise, et revenir à la version par défaut dans votre IDE

    Il nous reste à traduire les textes situés dans les pages de code, non accessibles depuis le designer (Msgbox, labels+tooltips+boutons modifiés par le code...). C'est la suite :

    4°/ Ajouter un fichier de ressource comme indiqué par Plume13 : Sélectionner le projet, clic droit, ajouter un élément, fichier de ressource. Nommez-le (par exemple Lang.resx. Ce fichier contiendra vos textes par défaut (en français donc)

    5°/ Recommencer en créant un fichier Lang.en-US.resx.
    Attention : la syntaxe du nom est importante : elle doit être du type fichier.CultureInfo.resx où fichier est le nom donné à l'étape 4 et CultureInfo le nom de la cultureinfo voulue ("en-US" dans mon exemple, pour l'anglais)

    6°/ Pour le fichier Lang.resx, sélectionnez "Chaînes" en haut à gauche et rentrez dans le tableau
    Nom : le nom de votre variable (par exemple :"AchatInvalideMsg1")
    Valeur : le texte à traduire (par exemple : "La quantité achetée doit être supérieure à 0").
    Commentaire : facultatif ; personnellement, j'y indique le nom de mon formulaire où est utilisée la variable

    7°/ Idem étape 6 avec le fichier Lang.en-US.resx : seule la valeur change puisque vous y mettez la traduction anglaise. Le nom doit impérativement être le même qu'à l'étape 6

    A la fin de 6 et 7, vous avez 2 fichiers/tableaux avec le même nombre de lignes et une première colonne (nom) identique.

    Maintenant, il faut modifier votre code pour appeler les ressources à bon escient.

    8°/ Au début de chaque form, vous rentrez ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Class FORM1
     
        Private RM As System.Resources.ResourceManager = Nothing
     
        Private Sub FORM1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            ' ResourceManager pour la gestion des langues
            RM = New System.Resources.ResourceManager(Application.ProductName & ".Lang", GetType(FORM1).Assembly)
    ....
    Nous y reviendrons un peu plus loin

    9°/ A chaque fois que votre code comprend une string à traduire, vous remplacez celle-ci par RM.GetString("mavariable") où mavariable est le nom de votre variable srockée dans les 2 fichiers resx des étapes 6 et 7

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(RM.GetString("AchatInvalideMsg1"))
    N'oubliez pas les guillemets.

    10°/ Une fois votre code corrigé pour remplacer les chaînes par des GetString, il reste une étape que j'ai mis du temps à résoudre :

    En fait la syntaxe du RM dans l'étape 8 n'est pas comprise par l'appli. En tout cas chez moi, j'ai une erreur me disant que "Lang.resources" n'existe pas. Tout se passe comme si le fichier resources n'était pas au bon format.

    Il faut donc enregistrer votre projet et lancer le module "Visual Studio Command Prompt" qui est installé en même temps que Visual Studio normalement (je travaille avec la version Ultimate, je ne sais pas si les versions Express ont ce module). Vous le trouverez dans vos programmes (sur Win7, il m'a suffi de taper "Visual Studio Command Prompt" dans le champ de recherche des programmes dans le menu Démarrer).
    Ce module ouvre une console.
    Placez-vous dans le répertoire de vos 2 fichiers resx. puis tapez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resgen Lang.resx Lang.resources
    Il ne faut le faire qu'avec le fichier resx par défaut (pas le Lang.en-US.resx)
    La fenêtre console vous confirme la traduction du fichier avec le nombre de variables contenues dedans.

    11°/ C'est fait ! Il ne vous reste plus qu'à exécuter votre appli en changeant de CultureInfo à votre guise

    Un grand merci à tous ceux qui ont contribué à me permettre de trouver la solution.

    Encore une fois, si vous avez des améliorations à apporter, je suis preneur. L'étape 10 me surprend un peu. Je ne serais pas étonné qu'il y ait un moyen de s'en passer...

    Enfin, cette méthode a l'avantage de rendre particulièrement souple la traduction des strings au fil de l'eau : les 2 fichiers resx se présentent comme des tableurs. Il est d'ailleurs aisé de faire des copiers/collers de ou vers Excel (utile pour faire traduire vos projets par une tierce personne !). Bref, ça devrait plaire à Kropernic !

  2. #22
    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 239
    Points
    4 239
    Par défaut
    Citation Envoyé par noftal Voir le message
    Bref, ça devrait plaire à Kropernic !
    Un peu que ça me plait !

    Si j'ai le temps aujourd'hui, je teste cela dans un p'tit projet de test.

    Si tout marche bien, je ferai un billet de blog là-dessus (en citant comme source bien sûr !).
    Kropernic

  3. #23
    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 239
    Points
    4 239
    Par défaut
    Bon je suis en train tester ça merdouille un peu ^^.

    J'ai donc fait un p'tit projet de test (nommé test) dans lequel se trouve une form nommée frmTest.

    Sur cette form j'ai mis 1 label et 2 buttons. Les boutons servent à changer de langue et dans le label, j'affiche la langue en cours d'utilisation.

    J'ai bien suivie toutes les étapes sauf la dernière car je n'ai pas d'erreur de mon côté à priori. (dans le toute, je l'ai testée mais ça ne marche pas chez moi... Il ne trouve pas le fichier Lang.resx. J'suis sûrement pas dans le bon répertoire ^^).

    Bref, pas d'erreur, je run et là, ça merdouille.

    Ca s'affiche directement en Anglais...

    Voici le code complet de la form. je vous passe les fichiers ressources... Y a 3 lignes dedans...
    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
    17
    18
    19
    20
    21
    22
    Public Class frmTest
     
        Private RM As System.Resources.ResourceManager = Nothing
        Private FrenchCulture As Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentUICulture
        Private EnglishCulture As Globalization.CultureInfo = New Globalization.CultureInfo("en-US")
     
        Private Sub btnFR_Click(sender As System.Object, e As System.EventArgs) Handles btnFR.Click
            If MessageBox.Show(RM.GetString("translateInFrench"), RM.GetString("confirmation"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                Application.CurrentCulture = EnglishCulture
            End If
        End Sub
     
        Private Sub btnEN_Click(sender As System.Object, e As System.EventArgs) Handles btnEN.Click
            If MessageBox.Show(RM.GetString("translateInEnglish"), RM.GetString("confirmation"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture
            End If
        End Sub
     
        Private Sub frmTest_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            RM = New System.Resources.ResourceManager(Application.ProductName & ".Lang", GetType(frmTest).Assembly)
        End Sub
    End Class
    Pourquoi l'application se lance-t-elle en anglais alors que dans le langage par défaut, c'est en français ?

    Sans touché au reste du code, j'ai ajouté un bouton avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            MsgBox(System.Threading.Thread.CurrentThread.CurrentUICulture.ToString)
        End Sub
    Et la culture affichée est en-US. Se pourrait-il que ma culture par défaut soit cela ? XD
    Kropernic

  4. #24
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    Hello,

    J'ai réussi à me trouver une version pour faire des winforms et j'ai fait quelques tests. Du coup, je modère ce que j'ai dit plus tôt : apparemment cela ne marche pas tout seul, il faut quand même faire quelques ajustements.

    J'ai dû rajouter une méthode de réinitialisation des textes (en me basant sur ce qui est fait dans InitializeComponents()) :
    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
    17
    18
    19
    20
    21
    22
    private void InitializeTexts()
    {
        // les textes traduits dans le designer
        ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
        resources.ApplyResources(this, "$this");
        this.InitializeTexts(resources, this);
     
        // les textes traduits hors du designer
        this.label1.Text = Resource1.Texte;
        this.label3.Text = DateTime.Today.ToString("d");
    }
     
    private void InitializeTexts(ComponentResourceManager resources, Control parent)
    {
        // on parcourt tous les contrôles enfants
        foreach (Control control in parent.Controls)
        {
            resources.ApplyResources(control, control.Name);
            // une petite récursivité...
            this.InitializeTexts(resources, control);
        }
    }
    A noter que pour ma part, quand j'ai créé le fichier de ressources Resource1, un fichier Resource1.Designer.cs a été créé qui permet de faire référence aux textes qu'il contient en utilisant Resource1.LeNomDeLaResource.

    Pour changer de langue, j'ai fait une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void ChangeLanguage(string languageCode)
    {
        CultureInfo culture = new CultureInfo(languageCode);
        Thread.CurrentThread.CurrentUICulture = culture;
        Thread.CurrentThread.CurrentCulture = culture;
    }
    Il est important de changer les 2 propriétés CurrentUICulture (pour les traductions) et CurrentCulture (pour les formats de date, de nombres, etc.) de Thread.CurrentThread.

    Je mets mon projet de tests en pièce jointe, ce n'est peut-être pas la meilleure façon pour les traductions, mais je n'ai pas trouvé mieux pour l'instant...
    Fichiers attachés Fichiers attachés
    "C'est tellement merdique que toute modification est une amélioration !"

  5. #25
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    @kropernic

    Ton test avec le bouton montre bien d'où vient le pb. Alors oui, il semble bien que ta currentUICulture soit anglaise !

    La question est pourquoi ?
    As-tu vérifié que ton form a bien la propriété "Language = (par défaut)" ET QUE son apparence (libellé, bouton) est bien en français ?
    Vérifie aussi les champs "locale" dans les objets de ton designer. Il y en a en plusieurs endroits. Regarde aussi dans les propriétés de ton projet.
    CurrentUICulture est la culture de l'appli, pas de l'ordinateur.

    Ensuite, même si c'est un peu une solution d'évitement, pourquoi ne mets-tu pas en ligne 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private FrenchCulture As Globalization.CultureInfo = New Globalization.CultureInfo("fr-FR")
    Nota : tu remarqueras que ton pb se situe plus au niveau du changement de culture dans l'appli, que dans la façon de spécifier les traductions. On déplace donc légèrement la question initiale.
    Pour changer de culture, perso, je stocke la cultureInfo sous forme de string dans le registre, à chaque fois que l'utilisateur change de langue. C'est simple mais le revers de la médaille est que le changement prend effet au démarrage suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Main()
    ' code lu à l'initialisation
    Dim nodeGessica As Microsoft.Win32.RegistryKey
                nodeGessica = My.Computer.Registry.CurrentUser.CreateSubKey("Software").CreateSubKey(Application.ProductName)
     
                ' définition CultureInfo ; recherche dans la base de registre si existe, sinon fr_FR
                Dim MyCultureInfo As CultureInfo
                If nodeGessica.GetValue("CultureInfo") Is Nothing Then
                    nodeGessica.SetValue("CultureInfo", "fr-FR")
                    MyCultureInfo = New CultureInfo("fr-FR")
                Else
                    MyCultureInfo = New CultureInfo(CStr(nodeGessica.GetValue("CultureInfo")))
                End If
                System.Threading.Thread.CurrentThread.CurrentUICulture = MyCultureInfo
    et dans le form (exemple si le user choisit "Français" dans le menu) :
    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
    Private Sub TSI_French_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSI_French.CheckedChanged
            RemoveHandler TSI_English.CheckedChanged, AddressOf TSI_English_CheckedChanged
            TSI_English.Checked = Not TSI_French.Checked
            If TSI_French.Checked And _init = False Then
                ' Modification CultureInfo dans le registre
                Dim RegisterNode As Microsoft.Win32.RegistryKey
                RegisterNode = My.Computer.Registry.CurrentUser.CreateSubKey("Software").CreateSubKey(Application.ProductName)
                RegisterNode.SetValue("CultureInfo", "fr-FR")
                MessageBox.Show(RM.GetString("CultureInfoChangeMsg"), _
                                RM.GetString("CultureInfoChangeTitle"), _
                                MessageBoxButtons.OK, _
                                MessageBoxIcon.Information)
            End If
            AddHandler TSI_English.CheckedChanged, AddressOf TSI_English_CheckedChanged
        End Sub

  6. #26
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    @Plume13

    Je pense que ton complément permet de faire ce que j'évite de faire : changer la langue instantanément.
    Ca semble simple pour un form, mais n'est-ce pas beaucoup plus lourd lorsqu'il s'agit de traduire une appli avec pleins de forms et de contrôles imbriqués ?

  7. #27
    Membre confirmé

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par noftal Voir le message
    @Plume13

    Je pense que ton complément permet de faire ce que j'évite de faire : changer la langue instantanément.
    Ca semble simple pour un form, mais n'est-ce pas beaucoup plus lourd lorsqu'il s'agit de traduire une appli avec pleins de forms et de contrôles imbriqués ?
    That is the question !
    A tester dans les conditions du direct...
    "C'est tellement merdique que toute modification est une amélioration !"

  8. #28
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    @Kropernic :

    Je ne comprends pas bien cette phrase

    J'ai bien suivie toutes les étapes sauf la dernière car je n'ai pas d'erreur de mon côté à priori. (dans le toute, je l'ai testée mais ça ne marche pas chez moi... Il ne trouve pas le fichier Lang.resx. J'suis sûrement pas dans le bon répertoire ^^).
    Tu n'as pas eu besoin de l'étape 10 parce que ton IDE reconnaît les fichiers resx ? Mais dans ce cas, ta parenthèse semble dire le contraire...

  9. #29
    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 239
    Points
    4 239
    Par défaut
    Hello,

    Je vais avoir énormément de taff les jours qui viennent donc je resterai d'ici quelques jours.

    @noftal : pour ma paranthèse, ça veut dire que le command prompt s'ouvre avec une dossier racine par défaut. Mes projets n'étant pas stockés là, j'imagine qu'il faut que je me place au bon endroit. Cependant, je pense que d'avoir cette étape n'est pas un souci vu que j'ai pas d'erreur dans VS.
    Kropernic

  10. #30
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Hello,

    ça veut dire que le command prompt s'ouvre avec une dossier racine par défaut. Mes projets n'étant pas stockés là, j'imagine qu'il faut que je me place au bon endroit.
    En effet, je ne l'ai pas dit et tu fais bien de le préciser : il faut se placer dans le répertoire contenant Lang.resx avant de taper l'instruction resgen

    Cependant, je pense que d'avoir cette étape n'est pas un souci vu que j'ai pas d'erreur dans VS.
    C'est surtout ça qui m'intrigue. Ce serait quand même plus simple si je pouvais faire de même car, à défaut, l'étape 10 est à répéter à chaque fois que je modifier le resx. Or, je ne vois pas pourquoi il veut absolument un .resources chez moi.

  11. #31
    Membre actif
    Inscrit en
    Juillet 2013
    Messages
    776
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 776
    Points : 275
    Points
    275
    Par défaut
    Dans mes explications ci-dessus, j'écrivais :
    5°/ Recommencer en créant un fichier Lang.en-US.resx.
    Attention : la syntaxe du nom est importante : elle doit être du type fichier.CultureInfo.resx où fichier est le nom donné à l'étape 4 et CultureInfo le nom de la cultureinfo voulue ("en-US" dans mon exemple, pour l'anglais)
    En fait il faut plutôt nommer le fichier Lang.en.resx par homogonéité avec les noms des fichiers de langue anglais générés automatiquement à l'étape 2°/
    fonctionnellement, cela ne change rien, mais dans le dossier Release (ou Debug), cela vous évite d'avoir deux répertoires en et en-US. Un seul subistera : en

  12. #32
    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 239
    Points
    4 239
    Par défaut
    Avec tout ça, je n'ai toujours pas eu le temps de continuer mes tests...

    Et ça ne va pas aller en s'améliorant car j'ai 2 nouveaux projets au boulot en plus d'avoir commencer une traduction pour DVP...

    C'est quand que tu nous fais un tuto/article noftal ? ^^
    Kropernic

  13. #33
    Community Manager

    Profil pro
    Inscrit en
    Avril 2014
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2014
    Messages : 4 207
    Points : 13 061
    Points
    13 061
    Par défaut
    Bonjour Noftal,
    As-tu une suite pour ce projet de tutoriel qui présente encore beaucoup d'intérêts ?
    Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

  14. #34
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Je sais pas vraiment si je vais répondre à la problématique, mais quand j'avais eu à utilisé de la localization, j'avais utilisé ZetaRessource qui permet de facilité la gestion des fichier de traduction.
    Après effectivement pour l'implémentation c'est pas très pratique de devoir faire la traduction des contrôles page par page.
    Mais on peux tricher vite fait avec une traduction visible dans toute l'appli, et le remplissage des libellés depuis le load, mais c'est pas forcement plus joli.

    bon courage

Discussions similaires

  1. Traduction d'une appli : Génération form1.fr.resx
    Par noftal dans le forum VB.NET
    Réponses: 0
    Dernier message: 26/12/2013, 20h08
  2. Réponses: 2
    Dernier message: 03/07/2013, 12h55
  3. Une appli WAP avec XMLRAD
    Par et.et-and-co dans le forum XMLRAD
    Réponses: 1
    Dernier message: 30/01/2006, 14h18
  4. [Plugin][Débutant] Lancement d'une appli Java avec un plugin
    Par antares24 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 29/07/2004, 14h18
  5. Définir une appli JEE avec JB7 Entreprise
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 10/06/2003, 11h48

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