Fichiers de Localisation (Appli. Multi-Langues) - C#/.NET managed - Programmation
MarshPosté le 16-12-2011 à 15:35:35
Bonjour,
J'aurais une petite question pour les pro. de la programmation sous VB.NET, à savoir que j'ai créé une application en français, et comme tout bon débutant, ce n'est qu'après coup que je m'intéresse à la traduire en plusieurs langues.
J'ai donc rendu ma form principale Localizable, puis suis passé à la langue anglaise, et ai commencé à changer les champs un à un (j'ai donc un form1.en.resx) qui a été créé.
J'ai par ailleurs importé les Imports System.ComponentModel Imports System.Globalization Imports System.Reflection
J'ai aussi une comboBox pour faire le changement de langue :
Private Sub ComboBoxLangue_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBoxLangue.SelectedIndexChanged
If ComboBoxLangue.SelectedItem.ToString() = "English" Then ChangeLanguage("en" ) ElseIf ComboBoxLangue.SelectedItem.ToString() = "Spanish" Then ChangeLanguage("es-ES" ) Else ChangeLanguage("fr-FR" ) End If End Sub
Private Sub ChangeLanguage(ByVal lang As String) For Each c As Control In Me.Controls Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(Form1)) resources.ApplyResources(c, c.Name, New CultureInfo(lang)) Next c End Sub
Je voulais savoir : 1./ si c'était possible que Copier / Coller les champs de form1.resx dans form1.en.resx, puis de changer directement les valeurs dans ce dernier ? Un Copier / Coller est possible, mais j'ai l'impression que ce fichier n'est pas conservé, car quand j'édite à nouveau la form1 en anglais pour modifier un champ mal traduit, seules les modifs. apportées sur la form1 - Anglais. design sont conservées !!
2./ Que se passe t'il si je n'ai pas traduit tous les champs dans la form en anglais ? repasse sur la ressource par défaut ?
3./ Comment faire pour actualiser la form et tous les control de ma form ? est-ce que ce que j'ai mis c'est OK ?
Marsh Posté le 16-12-2011 à 15:35:35
Bonjour,
J'aurais une petite question pour les pro. de la programmation sous VB.NET, à savoir que j'ai créé une application en français, et comme tout bon débutant, ce n'est qu'après coup que je m'intéresse à la traduire en plusieurs langues.
J'ai donc rendu ma form principale Localizable, puis suis passé à la langue anglaise, et ai commencé à changer les champs un à un (j'ai donc un form1.en.resx) qui a été créé.
J'ai par ailleurs importé les
Imports System.ComponentModel
Imports System.Globalization
Imports System.Reflection
J'ai aussi une comboBox pour faire le changement de langue :
Private Sub ComboBoxLangue_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBoxLangue.SelectedIndexChanged
If ComboBoxLangue.SelectedItem.ToString() = "English" Then
ChangeLanguage("en" )
ElseIf ComboBoxLangue.SelectedItem.ToString() = "Spanish" Then
ChangeLanguage("es-ES" )
Else
ChangeLanguage("fr-FR" )
End If
End Sub
Private Sub ChangeLanguage(ByVal lang As String)
For Each c As Control In Me.Controls
Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(Form1))
resources.ApplyResources(c, c.Name, New CultureInfo(lang))
Next c
End Sub
Je voulais savoir :
1./ si c'était possible que Copier / Coller les champs de form1.resx dans form1.en.resx, puis de changer directement les valeurs dans ce dernier ?
Un Copier / Coller est possible, mais j'ai l'impression que ce fichier n'est pas conservé, car quand j'édite à nouveau la form1 en anglais pour modifier un champ mal traduit, seules les modifs. apportées sur la form1 - Anglais. design sont conservées !!
2./ Que se passe t'il si je n'ai pas traduit tous les champs dans la form en anglais ? repasse sur la ressource par défaut ?
3./ Comment faire pour actualiser la form et tous les control de ma form ? est-ce que ce que j'ai mis c'est OK ?
merci d'avance de m'éclairer,
A+
---------------
http://squidlididli.blogspot.com