Choisir la langue de l'application

Résolu
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006 - 15 sept. 2006 à 19:27
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre 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
A voir également:

11 réponses

Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
17 sept. 2006 à 19:43
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"
3
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 sept. 2006 à 20:01
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 ;)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 sept. 2006 à 20:20
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 #
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
15 sept. 2006 à 20:46
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
16 sept. 2006 à 10:32
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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 sept. 2006 à 10:50
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 #
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
16 sept. 2006 à 15:48
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
0
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
17 sept. 2006 à 10:41
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.
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
24 sept. 2006 à 20:52
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
0
Tim221 Messages postés 26 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 20 décembre 2006
25 sept. 2006 à 20:04
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.
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
26 sept. 2006 à 11:36
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 ;)
0
Rejoignez-nous