我正在开发一款Silverlight应用程序,它需要翻译成多种语言。这是一款商业应用程序,来自许多不同国家的人都在使用它。
应用程序中的用户界面字符串将取决于使用的UICulture,这取决于Web浏览器配置的语言。如果用户的浏览器配置为使用我们未翻译的语言,则我们只需覆盖UICulture以显示en-US翻译。例如,如果用户使用en-GB语言,我们选择显示en-US翻译。
现在我正在尝试了解是否需要类似的内容来处理应用程序的Culture(注意:不是UICulture)。例如,如果英国用户使用我的Silverlight应用程序,他希望日期以DD/MM/YYYY格式呈现。但是,如果美国用户使用它,则希望按照MM/DD/YYYY格式进行格式化。如果一个瑞典人出现了,他想要YYYY-MM-DD格式。据我所知,所有这些都会根据所选的语言自动处理(它因所选的语言而异)。只要我使用适当的数据类型来表示值(例如DateTime来表示日期),并且不做出愚蠢的假设(例如假设DateTime.Now.ToString()始终返回YYYY-MM-DD格式的日期,无论用户文化如何),我认为我不必在Culture方面做出特殊处理。
我意识到由应用程序调用的Web服务必须将DateTime作为参数,或者,如果Web服务总是假定日期以字符串格式YYYYMMDD表示,则客户端代码必须在调用Web服务之前正确格式化日期。
我的问题:
是否有时需要覆盖Silverlight应用程序的默认Culture以防止出现问题?
我也意识到一些用户可能更喜欢选择Culture而不是应用程序依赖Web浏览器设置,但这还不是必需的。我更想了解如果不覆盖Culture,是否会在某些情况下出现问题。
应用程序中的用户界面字符串将取决于使用的UICulture,这取决于Web浏览器配置的语言。如果用户的浏览器配置为使用我们未翻译的语言,则我们只需覆盖UICulture以显示en-US翻译。例如,如果用户使用en-GB语言,我们选择显示en-US翻译。
现在我正在尝试了解是否需要类似的内容来处理应用程序的Culture(注意:不是UICulture)。例如,如果英国用户使用我的Silverlight应用程序,他希望日期以DD/MM/YYYY格式呈现。但是,如果美国用户使用它,则希望按照MM/DD/YYYY格式进行格式化。如果一个瑞典人出现了,他想要YYYY-MM-DD格式。据我所知,所有这些都会根据所选的语言自动处理(它因所选的语言而异)。只要我使用适当的数据类型来表示值(例如DateTime来表示日期),并且不做出愚蠢的假设(例如假设DateTime.Now.ToString()始终返回YYYY-MM-DD格式的日期,无论用户文化如何),我认为我不必在Culture方面做出特殊处理。
我意识到由应用程序调用的Web服务必须将DateTime作为参数,或者,如果Web服务总是假定日期以字符串格式YYYYMMDD表示,则客户端代码必须在调用Web服务之前正确格式化日期。
我的问题:
是否有时需要覆盖Silverlight应用程序的默认Culture以防止出现问题?
我也意识到一些用户可能更喜欢选择Culture而不是应用程序依赖Web浏览器设置,但这还不是必需的。我更想了解如果不覆盖Culture,是否会在某些情况下出现问题。