多语言应用程序需要以下事项/行为.
>为登录用户的语言选择正确的资源
>字符串排序应根据用户语言进行(例如:如果是瑞典语用户,瑞典语字母应按顺序排在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