Pour tout ce qui est graphique tu peux gérer tes 40 langues graphiquement.
Dans ta form, ton usercontrol, ou autre, tu as "langage"
Il est en "Par défaut", si tu choisit un différent langage, et que tu modifies derrière un text, une position, une ancre, etc, ces modifications seront propres au langage que tu as choisit.
Ensuite tu dois gérer tout ça avec un ressourcemanager.
1 2 3 4 5
| Private rm_configure As System.Resources.ResourceManager = New System.Resources.ResourceManager("DMS.frm_configure", System.Reflection.Assembly.GetExecutingAssembly)
Private rm_configure_messages As System.Resources.ResourceManager = New System.Resources.ResourceManager("DMS.frm_configure_msg", System.Reflection.Assembly.GetExecutingAssembly)
Private EnglishCulture As CultureInfo = New CultureInfo("en-US")
Private FrenchCulture As CultureInfo = New CultureInfo("fr-FR") |
"DMS" est le nom de mon projet, "frm_configure" est la nom de ma form
A ton événement qui choisit la culture Française tu fais :
System.Threading.Thread.CurrentThread.CurrentUICulture = FrenchCulture
Ensuite tu dois traduire ta fenêtre :
1 2 3
| btn_validate.Text = rm_configure.GetString("btn_validate.Text")
btn_cancel.Text = rm_configure.GetString("btn_cancel.Text")
etc. |
Pour les messages là tu dois le gérer toi même, c'est le rôle de mon rm_configure_message, un fichier de ressource que j'ai ajouté manuellement à mon projet.
Pour les différentes cultures tu dois manuellement créer les fichiers de ressource des différentes langues.
Par exemple ici :
frm_configure_msg.en-US.resx
pour la culture en-US, pour la culture par défaut
Du coup à l'affichage de tes messages tu fais par exemple :
MessageBox.Show(rm_configure_messages.GetString("msg_nameplate_printer_test_fail"), rm_configure_messages.GetString("ton_libellé"), MessageBoxButtons.OK, MessageBoxIcon.Error)
Tous les messages que tu veux avoir il suffit de les ajouter dans tes fichiers de ressource de chaque langue.
Je ne te cache pas que je n'ai as fait 50 applications dans différentes langues donc il y avait peut être un moyen de réduire mon code ou autre, mais j'éspère que ça va t'éclairer et que tu pourras t'inspirer de ça
Partager