在ASP.NET应用程序中实现多语言的最佳方式

多语言应用程序需要以下事项/行为.

>为登录用户的语言选择正确的资源
>字符串排序应根据用户语言进行(例如:如果是瑞典语用户,瑞典语字母应按顺序排在z之后).
>日期时间格式验证应根据用户的语言进行. (例如:fr-FR用户可以输入dd / mm / yyyy,en-US用户可以输入mm / dd / yyyy)
>再次进行十进制验证应根据用户的语言进行(例如:12,5在法语中有效,而12.5无效)

现在问题是处理这个问题的最佳方法是什么.

方法1:

>设置页面文化和页面UICulture – 以便拾取App_GlobalResources并正确格式化网格中的十进制值.
>编写自定义方法以激活以下的验证

>日期时间
>十进制

>编写自定义方法来处理字符串排序.

方法2:

>设置当前线程的文化,并让它处理以下内容{在这种情况下,Web应用的每个用户是否正确设置了其文化?}

方法3:

>在web.config中初始化全球化属性,并让应用程序根据用户的浏览器文化选择文化

<globalization uiculture="auto" culture="auto" enableClientBasedCulture =”true”/>

请告诉我是否有更好的替代方案,我们应该如何解决这些问题或上述方法的优缺点.

最佳答案 重载InitializeCulture()页面事件.使用基于认证用户的会话var,该用户存储当前选定的文化,并在事件处理程序中重置Thread.Culture和UICulture.

据我所知,这些转换问题或ToString()格式问题应该不存在.当前的线程文化将为您处理所有问题.

一些资源:
Walkthrough: Using Resources for Localization with ASP.NET
How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization

点赞