ASP.NET全局资源文件(App_GlobalResources)使用示例

我们可以将字符串、图片等资源存放在全局资源文件中,这样ASP.NET网站所有.aspx文件中都可以使用这些资源,例如:



使用示例

<asp:Label ID="Label1" runat="server" Text="<%$ Resources:Mzwu,Name %>"></asp:Label>



Label1.Text = Resources.Mzwu.Name;

为不同的语言选择资源文件

有时,同一个界面需要有不同的语言版本,全局资源文件可以帮助我们解决这个问题,只需为其他语言建立相应资源的文件即可,例如:

Mzwu.en-US.resx:专用于英语(美国)的资源文件。
Mzwu.zh-CN.resx:专用于中文(中国)的资源文件。
Mzwu.es-AR.resx:专用于西班牙语(阿根廷)的资源文件。
Mzwu.ro-RO.resx:专用于罗马尼亚语(罗马尼亚)的资源文件。



然后只需为ASP.NET 网页指定区域性和 UI 区域性即可,程序会自动选用相应的资源文件。

以声明方式设置 ASP.NET 网页的区域性和 UI 区域性

·若要设置所有页的区域性和 UI 区域性,请向 Web.config 文件添加一个 globalization 节,然后设置 uiculture 和 culture 属性,如下面的示例所示:

<globalization uiculture="en-US" culture="en-US" />

·若要设置单个页的区域性和 UI 区域性,请设置 @ Page 指令的 Culture 和 UICulture 属性,如下面的示例所示:

<%@ Page UICulture="en-US" Culture="en-US" %>

·若要使 ASP.NET 将区域性和 UI 区域性设置为当前浏览器设置中指定的第一种语言,请将 UICulture 和 Culture 设置为 auto。也可以将该值设置为 auto:culture_info_name,其中 culture_info_name 是区域性名称。

以编程方式设置 ASP.NET 网页的区域性和 UI 区域性

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Globalization" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected override void InitializeCulture()
    {
        if (Request.QueryString["culture"] != null)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.QueryString["culture"].ToString());
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(Request.QueryString["culture"].ToString());
        }
        else
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-CN");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
        }
        base.InitializeCulture();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>App_GlobalResources示例-Mzwu.Com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Mzwu,Name %>"></asp:Label>
    
    </div>
    </form>
</body>
</html>


评论: 0 | 引用: 0 | 查看次数: 9859
发表评论
登录后再发表评论!