Silverlight应用程序中的文化

Silverlight应用程序中的文化,silverlight,overriding,cultureinfo,Silverlight,Overriding,Cultureinfo,我正在开发一个Silverlight应用程序,它被翻译成多种语言。这是一个商业应用程序,来自许多不同国家的人都在使用它 应用程序用户界面中的字符串将取决于所使用的UICulture,而UICulture的设置取决于web浏览器配置为使用的语言。如果用户浏览器配置为使用我们尚未翻译的语言,我们只需覆盖UICulture以显示en-US翻译。例如,如果用户使用的是en-GB语言,我们会选择显示en-US翻译 现在我试图了解应用程序的文化是否需要类似的东西(注意:不是UICulture)。例如,如果一

我正在开发一个Silverlight应用程序,它被翻译成多种语言。这是一个商业应用程序,来自许多不同国家的人都在使用它

应用程序用户界面中的字符串将取决于所使用的UICulture,而UICulture的设置取决于web浏览器配置为使用的语言。如果用户浏览器配置为使用我们尚未翻译的语言,我们只需覆盖UICulture以显示en-US翻译。例如,如果用户使用的是en-GB语言,我们会选择显示en-US翻译

现在我试图了解应用程序的文化是否需要类似的东西(注意:不是UICulture)。例如,如果一个英国用户使用我的Silverlight应用程序,他希望他的日期以DD/MM/YYYY格式显示。但是,如果美国用户使用它,他希望根据MM/DD/YYYY对其进行格式化。如果一个瑞典人来了,他想要YYYY-MM-DD。据我所知,所有这些都是自动处理的(这取决于在web浏览器中选择的语言)。只要我使用适当的数据类型来表示值(例如,DateTime表示日期),并且不假设愚蠢的事情(例如假设DateTime.Now.ToString()将始终以YYYY-MM-DD格式返回日期,而不管用户文化如何,我相信我不必在文化方面做任何特殊的事情

我意识到,应用程序调用的web服务要么必须将DateTime作为参数,要么,如果web服务始终假定日期为字符串格式YYYYMMDD,则客户端代码必须在调用web服务之前正确设置日期格式

我的问题:

在某些情况下是否有必要覆盖Silverlight应用程序的默认区域性以防止内容被破坏

我还意识到,有些用户可能更喜欢自己选择文化,而不是依赖于web浏览器设置的应用程序,但这还不是一个要求。我更想理解的是,如果不覆盖文化,在某些情况下会破坏东西。

您可以使用以下方法:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-GB");
ci.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
ci.DateTimeFormat.ShortTimePattern = "HH:mm:ss tt";
假设您的日期在
date
var中

然后用它作为

var date= System.DateTime.Parse(VitalinfoArray[2].Trim(),ci);
它将根据浏览器的文化给出日期