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