2009-07-22 7 views
2

Notre application Web (.net/C#) formate les montants en devise à l'aide de amount.ToString ("c"), illustrée localisée dans quelques régions différentes.comment modifier les paramètres de culture par défaut dans une application Web .net?

Nos utilisateurs français de langue française préfèrent que tous les montants soient au format américain (123 456,99 par rapport à la valeur par défaut de Windows pour fr-CA de 123 456,99).

Quelle est la meilleure façon de gérer cela? Puis-je simplement modifier les paramètres régionaux sur chaque serveur Web dans Windows pour fr-ca? ou dois-je créer une culture personnalisée?

Répondre

2

Vous pouvez regarder dans la création une culture personnalisée, fournissant le mélange de règles de formatage que vous avez besoin. There is an article at MSDN describing how to do it.

En résumé, vous créez un objet CultureAndRegionInfoBuilder, définissez le nom, définissez les propriétés et enregistrez-le. Consultez l'article pour plus de détails.

+0

C'est beaucoup plus facile que je ne le pensais - vous pouvez charger une culture existante, modifier une valeur et l'enregistrer comme une nouvelle culture. parfait. – ericvg

1

Vous pouvez modifier la culture actuelle comme ceci:

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA") 

Vous pouvez tirer la valeur de web.config, bien sûr.

EDIT:

Ok, désolé d'avoir mal compris.

Cela pourrait fonctionner:

decimal d = 1232343456.99M; 
    CultureInfo USFormat = new CultureInfo("en-US");  
    Console.Out.WriteLine(d.ToString(USFormat)); 

Cela devrait vous permettre d'utiliser simplement le USFormat lorsque vous êtes sortie vals numériques.

+0

eh bien, nous le faisons actuellement, mais nos utilisateurs de fr-CA ne veulent pas le formatage standard pour cette culture, ils veulent un formatage américain pour des montants en dollars seulement. Donc, c'est comme une culture hybride. – ericvg

+0

et je préfère ne pas avoir à pirater le code pour montrer le format américain pour seulement des montants en dollars si la culture actuelle est fr-CA. – ericvg

+0

@pinkmuppet: vous pouvez affecter "fr-CA" à CurrentUICulture et "en-US" à CurrentCulture; cela fera en sorte que l'application charge les ressources fr-CA (ressources de chaînes et autres) tout en utilisant en-US pour le formatage des nombres et des dates. –

0

Je créerais un des paramètres utilisateur pour l'application, qui détiendrait le CultureInfo pour chaque utilisateur, et créer un formulaire pour permettre à chaque utilisateur de modifier la propriété ....

Questions connexes