标签: cultureinfo

紧凑框架 - 检索国家和地区列表

下午的人!

我正在尝试在我的Compact Framework(移动)应用程序上实现一个县列表.

我可以使用CultureInfo.GetCultures(.. etc)在完整的.Net框架中轻松完成此操作.但是,CF似乎缺少这个功能?

有什么方法可以返回我可以填充到ComboBox中的国家/地区列表(如果可能的话,还有地区)?

操作系统有一个国家列表,所以必须有办法吗?

我期待着回复!

.net c# compact-framework cultureinfo

3
推荐指数
1
解决办法
2748
查看次数

如何在WPF UserControl中显示动态文化格式化的数字

我想动态设置Number文本块的文化格式,其中包含传递给MyUserControl的文化和数字值.MyCulture和Number值将传递给MyCustomControl,其格式为"en-GB","en-US"等.

我在asp.NET MVC中使用扩展方法做了类似的事情,但需要帮助如何在WPF中将它拼凑在一起.

示例MVC扩展方法

public static MvcHtmlString CulturedAmount(this decimal value, 
    string format, string locale)
{
    if (string.IsNullOrEmpty(locale))
        locale = HttpContext.Current.Request.UserLanguages[0];

    return MvcHtmlString.Create(value.ToString(format, 
        CultureInfo.CreateSpecificCulture(locale)));
}
Run Code Online (Sandbox Code Playgroud)

窗口

//MyMoney is a decimal, MyCulture is a string (e.g. "en-US")
<MyCustomControl Number="{Binding MyMoney}" Culture="{Binding MyCulture}" 
    Text="Some Text" />
Run Code Online (Sandbox Code Playgroud)

MyCustomControl

<StackPanel>
    <TextBlock Text="{Binding Number, ElementName=BoxPanelElement, 
        StringFormat={}{0:C}}" /> //display this with specific culture
    <TextBlock Text="{Binding Text, ElementName=BoxPanelElement}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

c# wpf cultureinfo

3
推荐指数
2
解决办法
2891
查看次数

.NET(3.5)使用点而不是冒号格式化时间作为它的IT文化的TimeSeparator?

根据维基百科(并在Dario Solera的回答中证实),在意大利,他们使用冒号格式化时间:

24小时表示法以书写形式使用冒号作为分隔符.示例:14:05.会议记录以两位数字写成; 小时数可以写入或不带前导零.

但是,运行以下代码似乎输出点:

using System.Globalization;

Thread.CurrentThread.CurrentCulture = new CultureInfo("it-IT");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("it-IT");
// Outputs "11.08"
Console.WriteLine(DateTime.Now.ToShortTimeString());

// Outputs "."
Console.WriteLine(new CultureInfo("it-IT").DateTimeFormat.TimeSeparator);
Run Code Online (Sandbox Code Playgroud)

这是一个框架错误吗?什么是"修复"它的最佳方法?TimeSeparator是可设置的 - 我们应该在分配之前覆盖它Thread.CurrentThread.CurrentCulture吗?

.net c# globalization localization cultureinfo

3
推荐指数
1
解决办法
3114
查看次数

字符串未被识别为有效的DateTime?

我尝试将字符串转换为datetime但每次我得到:

字符串未被识别为有效的DateTime.

代码是:

string format = "dd/MM/yyyy";

obj.TransDate = DateTime.ParseExact(lbl_TransDate.Text.Split('/')[0] + "/" + lbl_TransDate.Text.Split('/')[1] + "/" + lbl_TransDate.Text.Split('/')[2], format, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

当我调试我尝试解析它的日期时: 12/4/2012

c# asp.net string datetime cultureinfo

3
推荐指数
1
解决办法
4730
查看次数

CurrentThread.CurrentUICulture设置正确但始终为en-US

我正在使用两种语言的多语种网站开始使用阿拉伯语和英语

我已经在IE中以及在FireFox上将语言设置为阿拉伯语(ar-ae)但它总是让我获得英语版本我无法解决此问题

网站结构

Default.aspx
 en/Default.aspx
 ar/Default.aspx
Run Code Online (Sandbox Code Playgroud)

问题是当我使用URL http://localhost:49831/site/Defualt.aspx然后它工作正常并且ar/Default.aspx如果选择阿拉伯语作为语言则将我重定向到阿拉伯语版本.

但是当使用URL时,http://localhost:49831/site/ 它总是将我重定向到英文版 en/Default.aspx

我不确定我做错了什么.

我仅使用Default.aspx来检测默认的浏览器语言,然后相应地重定向

Default.aspx.cs文件的CODE

    // Localization and Globalization code
    protected override void InitializeCulture()
    {
        String lang = Request["Language"];

        Session["lang"] = Helper.DetectLanguage(lang);
        //Set Direction of page LTR/RTL
        if (Session["lang"] == "ar-AE")
        {
            Session["PageDIR"] = "rtl";
        }
        else
        {
            Session["PageDIR"] = "ltr";
        }

        base.InitializeCulture();
    }

   public static String DetectLanguage(String lang)
    {
        String LangCode = lang;

        if (!string.IsNullOrEmpty(lang))
        {
            lang =  lang.ToLower();
        }

        String Lang2Char;
       CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentUICulture; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net cultureinfo currentuiculture

3
推荐指数
1
解决办法
8379
查看次数

decimal.TryParse返回false

例如,文本框中的输入字符串为10.00美元.我打电话

decimal result;
var a = decimal.TryParse(text, NumberStyles.AllowCurrencySymbol, cultureInfo, out result);
Run Code Online (Sandbox Code Playgroud)

cultureInfo是已知的(en-US).为什么decimal.tryParse返回错误?

谢谢.

c# currency cultureinfo decimal

3
推荐指数
1
解决办法
2678
查看次数

正则表达式匹配德国数字

我想知道,为德国文化测试正确数字格式的正则表达式会是什么样子.

在德语中,逗号用作十进制标记,点用于分隔数千.

因此:

  • 1.000等于1000
  • 1,000等于1
  • 1.000,89等于1000.89
  • 1.000.123.456,89等于1000123456.89

在我看来,真正的诀窍是确保可能有几个点,可选地后跟逗号分隔符

regex formatting cultureinfo

3
推荐指数
1
解决办法
4011
查看次数

3
推荐指数
1
解决办法
3720
查看次数

当我的应用程序不会移民时,我应该关心文化吗?

ReSharper希望改变这个:

platypusID = DuckbillValues[i - 1].ToString();
Run Code Online (Sandbox Code Playgroud)

..到这个:

platypusID = DuckbillValues[i - 1].ToString(CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

由于我的应用程序仅在美国使用的机会很大,我将默认以下哪项:

1) Smart
2) Dumb
3) Neither smart nor dumb
4) Smart, but not for that reason
5) Dumb, but not for that reason
Run Code Online (Sandbox Code Playgroud)

c# resharper cultureinfo winforms

2
推荐指数
1
解决办法
106
查看次数

String.format()DateTime具有阿拉伯文化

检查以下代码段,

namespace TestDateConvertion
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime testValue = new DateTime(2013, 12, 15, 15, 33, 44);

            CultureInfo culture = new CultureInfo("ar-SA");
            string stringValue = string.Format(culture, "{0:d} {0:HH:mm:ss}", testValue);
            Console.WriteLine(stringValue);
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它给出了输出

22/02/35 15:33:44

我不知道这是怎么可能的.什么是那里的35输出

c# string.format datetime cultureinfo

2
推荐指数
1
解决办法
4333
查看次数