Подтвердить что ты не робот

Получить валюту из текущей культуры?

Есть ли способ динамически получать текущую информацию из настроек культуры приложений? В принципе, если пользователь установил культуру для США, я хочу знать, что валюта - это доллары, или если они установлены в Великобритании, я хочу фунт стерлингов и т.д. И т.д.

Это значит, что я могу отправить эту информацию в PayPal, когда будет произведен платеж.

4b9b3361

Ответ 1

Используйте свойство RegionInfo.ISOCurrencySymbol. Например:

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

Выход: "USD"

Ответ 2

Вы можете получить символ от CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol, но я сомневаюсь, что этого достаточно; вам может потребоваться сохранить отдельный список для каждой культуры. Или просто позвольте пользователю рассказать вам, за что они хотят платить (например, они могут быть вдали от дома и т.д., Поэтому культура ПК в каком-то гостиничном лаундже не является тем, что есть на их кредитной карте).

Ответ 3

Как только у вас есть объект CultureInfo ci, вы можете спросить, например,

ci.NumberFormat.CurrencySymbol

Для текущей культуры вы просто выполните

CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol

Ответ 4

string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;

Ответ 5

В основном вы можете использовать класс CultureInfo

CultureInfo ci = new CultureInfo(UICulture);
var symbol = ci.NumberFormat.CurrencySymbol;

Ответ 6

    public static string GetCurrencySymbol(string 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;
                    }
                }
        }