Choisir la langue de l'application [Résolu]

Messages postés
26
Date d'inscription
vendredi 28 avril 2006
Dernière intervention
20 décembre 2006
- - Dernière réponse : scottmat
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
- 26 sept. 2006 à 11:36
Bonjour sur Codyx, ils disent comment faire une application multilingue.

Mais ils ne disent pas comment faire pour charger la langue voulu.

Donc je voudrais faire une boite de dialogue qui demande la langue voulu puis la charge.

Ps: j'ai fait un fichier Form1fr.resx et un fichier Form1en.resx et c'est entre ces deux là que je voudrais choisir.

Merci de me répondre
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
26
Date d'inscription
vendredi 28 avril 2006
Dernière intervention
20 décembre 2006
3
Merci
Bon finalement j'ai réussi avec cultureinfo car il y avait trop d'erreur avec l'autre technique.


Je créé My.Settings.langue

Puis mets dans la form principale


Public
Sub
New()



Dim
ci

As
CultureInfo




If



My
.Settings.langue =

Nothing



Then



MessageBox.Show(




"La langue par défaut sera le français, mais vous pouvez toujours la changer dans le menu ? puis langue"
,

"Langue par défaut"
, MessageBoxButtons.OK, MessageBoxIcon.Information)


My
.Settings.langue =

"fr"

ci = CultureInfo.GetCultureInfo(




"fr"
)


Else

ci = CultureInfo.GetCultureInfo(




My
.Settings.langue)


End



If

Thread.CurrentThread.CurrentUICulture = ci







' Cet appel est requis par le Concepteur Windows Form.

InitializeComponent()







End



Sub

Et pour changer la langue j'utilise une autre form qui demande la langue voulu (Français ou Anglais) qui est enregistrer dans My.Settings.langue sous forme de "fr" ou "en"

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Tim221
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
2
0
Merci
Salut
Mais c'est en ASP.Net sa ? je reconnais les extensions
si c'est sur ASP.NET va sur le site de microsoft ASP.NET y'a le coatch qui t'explique sa en petite vidéo. Il t'explique tout de A à Z
Bon courage ;)
Commenter la réponse de scottmat
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Scottmat, .resx, c'est les extentions des fichiers ressources en .net (vb, C#, asp, C, .....)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
2
0
Merci
pffff je suis c...
moment d'oublie, moment de fatigue lol merci de m'avoir repris casy ;)
sinon Tim221 si c'est pour VB.Net (lol) va voir ce sujet :
http://www.vbfrance.com/infomsg_MULTI-LANGAGE_803564.aspx
il y'a deux méthodes, à toi de voir si l'une correspond à tes besoins.
Commenter la réponse de scottmat
Messages postés
26
Date d'inscription
vendredi 28 avril 2006
Dernière intervention
20 décembre 2006
0
Merci
Bonjour, merci de m'avoir répondu d'après le deuxième lien que tu m'as donné, j'ai essayer ta méthode.


Mais il me créer toujours un problème lors de l'execution "NullReferenceException".

Alors je modifie directement le fichier Form1.designer.vb est utilisant ifMy.Settings.langue = "Français" then ...
elseif my.Settings.langue = "Anglais"then...

Et au milieu du if  je modifie tout les me.qqc.text = qqc_fr ou en en fonction du if et avant je met Dim qqc As String = "&QQC"

C'est long mais ca marche.
Commenter la réponse de Tim221
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
38
0
Merci
Je ne sais pas s'il faut que tu fasse 2 fichiers resx. Par contre dans ces fichiers, il te faut déclarer et attribuer tes textes à chaque langue.

Après dans l'appli, le changement de langue se fait, je crois bien, en jouant avec la classe CultureInfo.
Je ne sais pas trop comment ça marche, mais si j'ai bien compris, cette classe contient tous les paramètres du système d'exploitation relatifs à sa régionalisation (langue, symbole monétaire, symbole décimal, ...). A priori, pour changer de langue, il faudrait changer le CultureInfo de l'application, pour lui faire croire qu'elle tourne sur un système d'une autre langue.

Sous toute réserve, je ne maitrise pas tout et même je ne comprend pas tout encore.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
2
0
Merci
Oué, moi je me suis pas pris la tête j'ai commencer par créer une Classe Français, puis aprés je l'ai copier et par la suite j'ai tout convertit en Anglais.
Après tu peux faire tous en un, c'est également envisageable
Commenter la réponse de scottmat
Messages postés
26
Date d'inscription
vendredi 28 avril 2006
Dernière intervention
20 décembre 2006
0
Merci
Moi aussi je n'ai pas compris le CultureInfo.


Car je voudrais que l'utilisateur choisisse a tout moment sa langue, mais avec CultureInfo il n'y avait pas moyen de le faire et il ne mettait jamais la langue voulu.


Donc j'ai créer une classe avec Dim qqc As String "&QQC"  Dim qqc2 As String "&QQC2" etc...


Mais avant j'avais fait Public Sub langue() avec a l'intérieur if my.Setting.langue "Anglais" then (tout les dim en anglais) elseif my.Settings.langue "Français" then (tout les dim en français) end if


Et dans Form1.designer.vb je met après InitializeComponent()  Class1.langue() et je change tout les me.qqc.text "Français" par FR(qui a été déclarer entre dim et As String "Français" en français ou "French" en anglais).

Voila si vous connaisez comment faire plus facilement, dites-le moi!(ça simplifirait mon code).

Et merci encore pour vos réponses.
Commenter la réponse de Tim221
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
2
0
Merci
Petite question au passage qui me chagrine.

Tu utilise cultureinfo (pour moi c'est nouveau, tu viens de me l'apprendre lol)
J'ai jeté un œil à ton code, je suppose que  les propriétés de objets (ApplicationSetting) seront raccorder aux fichiers ayant les données du langage.

Ou places-tu tes données de ces langages ?
Parce que si je créer des variables dans les ressources du projet, la variable n'a pas 2 valeur mais 1 !
J'aurai aimé savoir comment tu faisais ?

Merci d'avance
Commenter la réponse de scottmat
Messages postés
26
Date d'inscription
vendredi 28 avril 2006
Dernière intervention
20 décembre 2006
0
Merci
Pour changer la langue, je créer My.Settings.langue (où je stocke ce que je veux dedans)


Puis je met le Public sub New() dans Form1.vb.


Je créer une autre form avec un combobox contenant "fr" et "en" , et quand je choisit un des deux textes il fait My.Settings.langue = combobox1.selecteditem (il stocke fr ou en selon le choix)(Attention pour le cultureinfo il faut que ce soit fr ou fr-FR ou en ou en-EN et ainsi de suite...)
Dans Form1.Designer.vb sélectionne la form elle-même puis la propriété langue choisit celle dont tu veux traduire la form.
Enregistres et enfin pour toutes les variables je les ai mis dans un Public Sub langue() que je lance dans MyBase.Load
Dans la fonction langue(), j'ai mis Dim qqc as string

IfMy.Settings.langue = "fr" then
qqc = "QQCfr"
elseif My.Settings.langue = "en"then
qqc = "QQCen"
End if

Voila j'espère que cela n'est pas trop confu.
Commenter la réponse de Tim221
Messages postés
440
Date d'inscription
samedi 24 mai 2003
Dernière intervention
23 janvier 2011
2
0
Merci
Non Nikel ! Merci beaucoup ;)
C'est un peu le même système que j'ai adopté mais en plus pratique.



Merci & bonne journée ;)
Commenter la réponse de scottmat

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.