如何:为 ASP.NET 网页全球化设置区域性和 UI 区域性

来源:互联网 发布:加载完页面执行js 编辑:程序博客网 时间:2024/04/30 12:57
ASP.NET 如何:为 ASP.NET 网页全球化设置区域性和 UI 区域性 在 ASP.NET 网页中,可以设置两个区域性值,即 Culture 和 UICulture 属性。Culture 值确定与区域性相关的函数的结果,如日期、数字和货币格式等。UICulture 值确定为页加载哪些资源。 注意 Culture 和 UICulture 属性是使用标识语言的 Internet 标准字符串(例如,en 代表英语,es 代表西班牙语,de 代表德语)和标识区域性的 Internet 标准字符串(例如,US 代表美国,GB 代表英国,MX 代表墨西哥,DE 代表德国)设置的。一些示例包括:en-US 代表英语/美国,en-GB 代表英语/英国,es-MX 代表西班牙语/墨西哥。有关更多信息,请参见 CultureInfo。 这两个区域性设置不需要具有相同的值。根据您的应用程序,分别设置它们可能很重要。Web 拍卖站点就是这样的一个示例。对于每个 Web 浏览器,UICulture 属性可能有所变化,而 Culture 保持不变。因此,价格始终以相同的货币和格式显示。 Culture 值只能设置为特定的区域性,如 en-US 或 en-GB。这样就不必标识用于 en(对于该字符串,en-US 和 en-GB 具有不同的货币符号)的正确的货币符号。 用户可以在他们的浏览器中设置区域性和 UI 区域性。例如,在 Microsoft Internet Explorer 的“工具”菜单上,用户可以依次单击“Internet 选项”、“常规”选项卡、“语言”,然后设置他们的语言首选项。如果 Web.config 文件中 globalization 元素的 enableClientBasedCulture 属性设置为 true,则 ASP.NET 可以根据由浏览器发送的值自动设置网页的区域性和 UI 区域性。 完全依赖浏览器设置来确定网页的 UI 区域性并不是最佳做法。用户使用的浏览器通常并未设置为他们的首选项(例如在 Internet 咖啡馆中)。您应该为用户提供显式选择页面的语言或语言和区域性(CultureInfo 名称)的方法。 以声明方式设置 ASP.NET 网页的区域性和 UI 区域性若要设置所有页的区域性和 UI 区域性,请向 Web.config 文件添加一个 globalization 节,然后设置 uiculture 和 culture 属性,如下面的示例所示: 若要设置单个页的区域性和 UI 区域性,请设置 @ Page 指令的 Culture 和 UICulture 属性,如下面的示例所示: 若要使 ASP.NET 将区域性和 UI 区域性设置为当前浏览器设置中指定的第一种语言,请将 UICulture 和 Culture 设置为 auto。也可以将该值设置为 auto:culture_info_name,其中 culture_info_name 是区域性名称。有关区域性名称的列表,请参见 CultureInfo。您可以在 @ Page 指令或 Web.config 文件中进行该设置。 以编程方式设置 ASP.NET 网页的区域性和 UI 区域性重写该页的 InitializeCulture 方法。 在重写的方法中,确定要为页设置的语言和区域性。 注意 InitializeCulture 方法在页生命周期的很早的时期调用,此时还没有为页创建控件,也没有为页设置属性。因此,若要读取从控件传递给页的值,必须使用 Form 集合直接从请求获取这些值。 以下列方式之一设置区域性和 UI 区域性: 将页的 Culture 和 UICulture 属性设置为语言和区域性字符串(如 en-US)。这两个属性是页的内部属性,只能在页中使用。 将当前线程的 CurrentUICulture 和 CurrentCulture 属性分别设置为 UI 区域性和区域性。CurrentUICulture 属性采用一个语言和区域性信息字符串。若要设置 CurrentCulture 属性,请创建 CultureInfo 类的一个实例并调用其 CreateSpecificCulture 方法。 下面的代码示例显示一个 ASP.NET 网页,该网页允许用户从下拉列表中选择他们的首选语言。该页导入两个命名空间,使得使用线程处理类和全球化类更加方便。 Visual Basic 复制代码
English Español Deutsch

C# 复制代码
English Español Deutsch

请参见其他资源 ASP.NET 全球化和本地化 ASP.NET 全球化和本地化
原创粉丝点击