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

时间:2011-04-22 10:52:43

标签: .net asp.net globalization

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

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

    方法1:

    1. 设置页面文化和页面UICulture - 以便拾取App_GlobalResources并正确格式化网格中的十进制值。
    2. 编写自定义方法以激活以下内容的验证
      • 日期时间
      • 十进制
    3. 编写自定义方法来处理字符串排序。
    4. 方法2:

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

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

          <globalization uiculture="auto" culture="auto" enableClientBasedCulture =”true”/>
          
        2. 请告诉我是否有更好的选择,我们应该如何解决这些问题或上述方法的利弊。

1 个答案:

答案 0 :(得分:2)

重载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