在Silverlight应用程序中进行文化

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

应用程序用户界面中的字符串将取决于正在使用的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应用程序的默认文化以防止内容被打破?

我也意识到,有些用户可能更喜欢选择自己的文化,而不是依赖于网络浏览器设置的应用程序,但这还不是要求。 我更多地试图理解,如果不重写文化可以在某些情况下破坏事情。


你可以使用这个:

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);

它会根据您浏览器的文化给出日期。

链接地址: http://www.djcxy.com/p/75093.html

上一篇: Culture in a Silverlight application

下一篇: Is .NET double.ToString threadsafe?