我的理解是,当您将 CurrentThread.CurrentUICulture 设置为例如“da-DK”时,它将在“da-DK”中查找资源文件,然后是“da”,然后返回到不变的文化。这适用于桌面应用程序,因为操作系统通常不是多语言的。然而,对于网站来说,情况并非如此。
假设我有一个访问者,其浏览器坚持用户想要“da_DK”、“de_DE”和“en_GB”,即丹麦语(如果存在),然后是德语,然后是英国英语作为后备。
有没有办法使用 .Net 4 本地化框架来适应这种偏好?
不,这不是一个思想实验。:)
编辑
需要明确的是,问题不在于从 Web 请求中获取本地化标头。问题在于将 CurrentThread.CurrentUICulture 设置为按顺序检查资源文件,而不仅仅是检查资源文件。
另一种方法是检查 CurrentUICulture 是否具有匹配的 resx 文件。