Obtenez la devise de la culture actuelle?

Existe-t-il un moyen d’obtenir dynamicment les informations actuelles à partir des parameters de la culture des applications? Fondamentalement, si l’utilisateur a défini la culture aux États-Unis, je veux savoir si la devise est en dollars, ou si elle est définie sur Royaume-Uni, je veux mettre de la livre sterling, etc.

C’est pour que je puisse envoyer cette information à PayPal lors d’un paiement

Utilisez la propriété RegionInfo.ISOCurrencySymbol. Par exemple:

var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID); Console.WriteLine(ri.ISOCurrencySymbol); 

Sortie: “USD”

Vous pouvez obtenir le symbole de CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol , mais je doute que cela soit suffisant; vous devrez peut-être tenir une liste distincte par culture. Ou laissez simplement l’utilisateur vous dire ce qu’il veut payer (par exemple, il se peut qu’il ne soit pas à la maison, etc.)

Une fois que vous avez l’object CultureInfo ci, vous pouvez demander par exemple

 ci.NumberFormat.CurrencySymbol 

Pour la culture actuelle, vous ferez simplement

 CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol 
 ssortingng isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol; 

Vous pouvez essentiellement utiliser la classe CultureInfo

 CultureInfo ci = new CultureInfo(UICulture); var symbol = ci.NumberFormat.CurrencySymbol; 
  public static ssortingng GetCurrencySymbol(ssortingng currency) { if (currency == null) return ""; if (currency == "") return ""; int i = 0; var regionInfo = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID); foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures)) { if (!cultureInfo.Equals(CultureInfo.InvariantCulture)) { var regionCulture = new RegionInfo(cultureInfo.LCID); if(regionCulture.ISOCurrencySymbol == currency) { //list.Add(regionCulture); regionInfo = regionCulture; } } } 

http://help.outlook.com/en-us/140/system.globalization.regioninfo.currencynativename(VS.85).aspx

Vous voudrez le RegionInfo.CurrencyNativeName, RegionInfo.CurrencyEnglishName ou RegionInfo.ISOCurrencySymbol