OVH Cloud OVH Cloud

Forms : changer de culture à partir de l'interface

22 réponses
Avatar
Gloops
Bonjour tout le monde,

Au d=E9but de l'ann=E9e, j'ai appris =E0 cr=E9er des fichiers de ressourc=
es pour=20
internationaliser une application, et gr=E2ce aux conseils de Gilles j'ai=
=20
su que pour d=E9finir dans quelle culture on affiche un formulaire, il=20
fallait mettre dans le constructeur du formulaire :

Thread.CurrentThread.CurrentUICulture =3D GetCultureInfo("en-US");

si on veut afficher en Am=E9ricain, ou adapter la cha=EEne de caract=E8re=
s=20
pour une autre.

Je me le suis tenu pour dit, j'ai mis =E7a en dur, et =E7a marche. J'ai=20
suppos=E9 qu'en mettant la cha=EEne dans la ligne de commandes on devait =

pouvoir la r=E9cup=E9rer.

Maintenant, je voudrais aller un peu plus loin, et permettre =E0=20
l'utilisateur de choisir la culture non plus dans la ligne de commandes, =

mais dans l'interface.

Alors j'ai vu qu'il allait falloir fermer le formulaire et le rouvrir,=20
et que pour faire =E7a il fallait en ouvrir un autre (qui pourrait=20
s'appeler Param), faire la s=E9lection de culture dans cet autre=20
formulaire, et refaire la man=9Cuvre dans l'autre sens, mais aussi=20
qu'ouvrir un autre formulaire suppose la cr=E9ation d'un autre thread, et=
=20
la fin du thread courant si on veut fermer le formulaire appelant. Donc=20
=E0 la place de Thread.CurrentThread bien entendu on met le nom du nouvea=
u=20
Thread.

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3D1135710&SiteId=3D=
1

Est-ce que c'est bien =E7a qu'il faut faire, ou est-ce que je suis en=20
train de sortir un marteau-pilon pour =E9craser une mouche ?

Si je lance la commande indiqu=E9e ci-dessus (CurrentUICulture =3D ...)=20
alors que le formulaire est d=E9j=E0 ouvert, il reste dans la m=EAme cult=
ure=20
qu'=E0 son ouverture, m=EAme si je lance un Refresh.

2 réponses

1 2 3
Avatar
Fred
Dans : news:,
Gloops disait :
Gloops a écrit, le 22/05/2008 17:59 :



Est-ce qu'il y a une option quelque part pour dire qu'on veut un
paramètre accessible en écriture ?



Commençons par le commencement :
http://msdn.microsoft.com/en-us/library/0zszyc6e(VS.80).aspx
ou
http://msdn.microsoft.com/fr-fr/library/0zszyc6e(VS.80).aspx

Par défaut, les paramètres de niveau application sont stockés dans le
fichier .config (dans Program Files donc) et sont en lecture seule.
Les paramètres de niveau user sont stockés dans %USERPROFILE%Local
SettingsApplication Data... et sont en lecture écriture.

Ceci est réalisé par LocalFileSettingsProvider.

Si ce mode de fonctionnement ne convient pas, alors il faut dériver son
propre SettingsProvider et son ApplicationSettingsBase

--
Fred

Avatar
Gloops
Fred a écrit, le 23/05/2008 06:56 :
Commençons par le commencement :
http://msdn.microsoft.com/en-us/library/0zszyc6e(VS.80).aspx
ou
http://msdn.microsoft.com/fr-fr/library/0zszyc6e(VS.80).aspx




Je me rends compte tout à la fois que j'ai lu beaucoup de choses au
début de la semaine, que j'en ai oublié beaucoup aussi (par exemple, que
les paramètres d'application sont en lecture seule contrairement aux
paramètres d'utilisateur, effectivement, c'est passé sur mon écran ...),
mais je vois mieux la synthèse à cette adresse, probablement l'autre
jour j'ai dû afficher sans la table des matières.

Toujours est-il que je viens tout juste de réaliser (me rappeler) que l a
différence tient dans la troisième colonne de la table. J'étais en train
de chercher une syntaxe différente pour les paramètres utilisateur pa r
rapport aux paramètres d'application. Je crois que le week-end va êtr e
bienvenu.

En tout cas, maintenant, ça marche -à part ce que proposait , se
passer du Application.Restart(), ça il faut voir.


Merci beaucoup pour m'avoir ramené l'œil où il fallait.

Au fait encore une chose : l'interface avec les listes déroulantes pour
saisir Settings.settings, est disponible dans la plateforme de
développement. Pour l'utilisateur, il y a bien lieu de développer une
interface, n'est-ce pas ? Sinon j'ai vu proposer de faire saisir le xml
avec un éditeur de textes, bien sûr on pourrait aussi dire que c'est une
interface, pourquoi pas ...

http://msdn.microsoft.com/fr-fr/library/bb397744.aspx
1 2 3