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

Tim221 26 Messages postés vendredi 28 avril 2006Date d'inscription 20 décembre 2006 Dernière intervention - 15 sept. 2006 à 19:27 - Dernière réponse : scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention
- 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

Tim221 26 Messages postés vendredi 28 avril 2006Date d'inscription 20 décembre 2006 Dernière intervention - 17 sept. 2006 à 19:43
+3
Utile
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"
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Tim221
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 15 sept. 2006 à 20:01
0
Utile
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 15 sept. 2006 à 20:20
0
Utile
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
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 15 sept. 2006 à 20:46
0
Utile
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
Tim221 26 Messages postés vendredi 28 avril 2006Date d'inscription 20 décembre 2006 Dernière intervention - 16 sept. 2006 à 10:32
0
Utile
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 16 sept. 2006 à 10:50
0
Utile
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
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 16 sept. 2006 à 15:48
0
Utile
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
Tim221 26 Messages postés vendredi 28 avril 2006Date d'inscription 20 décembre 2006 Dernière intervention - 17 sept. 2006 à 10:41
0
Utile
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
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 24 sept. 2006 à 20:52
0
Utile
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
Tim221 26 Messages postés vendredi 28 avril 2006Date d'inscription 20 décembre 2006 Dernière intervention - 25 sept. 2006 à 20:04
0
Utile
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
scottmat 440 Messages postés samedi 24 mai 2003Date d'inscription 23 janvier 2011 Dernière intervention - 26 sept. 2006 à 11:36
0
Utile
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.