小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用ASP.Net2.0國際化你的網(wǎng)站祥解 - 平平的天空 - 博客園

 donixli1314 2008-06-16

使用ASP.Net2.0國際化你的網(wǎng)站祥解

        這個功能其實大家早就知道了,現(xiàn)在由于有一個項目要用到這個技術,所以又去全面一些的查找了一下。自己紀錄一下,方便于以后查找使用吧。
        創(chuàng)建可有多種語言版本的 Web 應用程序在 ASP.NET 2.0 版以前是一項復雜的任務。如果您使用資源文件 (RESX) 及 ResourceManager,則需要手動分離出可本地化的元素,并執(zhí)行自己的資源加載過程,這需要花費您很多的精力并需要編寫大量的代碼。ASP.NET 2.0 版大大簡化了此過程,并且增加了很多功能,如:
  • 對客戶端瀏覽器發(fā)送的接受語言 (Accept-Language) HTTP 請求標頭字段進行自動檢測
  • 使用聲明性資源表達式將控件或其屬性連接到資源
  • 通過程序訪問資源及強類型資源
  • 自動編譯 RESX 或 RESOURCE 文件并將其鏈接到運行庫附屬程序集
  • 對資源的創(chuàng)建提供進一步的設計時支持
  • 提供具有完全的擴展性的模型,以使 RESX 模型能夠交換出來

        首先要在頁面級別(<%@ Page UICulture="auto" Culture="auto" %>)或整個Portal級別(在Web.config中<globalization uiCulture="auto" culture="auto"/>)定義特定 UICultureCulture 屬性。這兩個屬性的值均為 auto。這將指示 ASP.NET 基于客戶端瀏覽器的首選區(qū)域性為頁的執(zhí)行檢測并設置當前線程區(qū)域性和 UI 區(qū)域性。如果不為auto則可以為其指定具體的語言。

        如果需要從數(shù)據(jù)庫中讀取的信息作為選擇語言的標準,需要對Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture 進行更改,并且需要在 InitializeCulture() 方法中進行,因為對首選瀏覽器語言的自動檢測是在頁生存期的早期發(fā)生的。 
        可以通過后臺代碼或直接在頁面上調用資源文件中的內容。
        有兩種形式的資源表達式:顯式和隱式。

資源表達式形式 說明
顯式 <%$ Resources:[filename prefix,]resource-key %>

顯式表達式用于以聲明性語法定義控件屬性的值,resource-key(必需)用于映射到資源中的值。filename prefix 參數(shù)是可選的,filename 指定全局資源文件夾中的資源文件的名稱。
隱式 <asp:Label ID="Label1" runat="server" meta:resourcekey="resource-key-prefix" />

隱式表達式以聲明性語法用作控件或對象的屬性,并且定義 resource-key-prefix,用于為控件執(zhí)行許多屬性分配。資源文件包含許多具有常規(guī)形式 resource-key-prefix.Property 的潛在資源鍵,例如 Label1KeyPrefix.Text 和 Label1KeyPrefix.Font-name。所有資源都只能從本地資源獲取。可以將表達式看作一個短格式表示法,用于在未顯式在頁中定義屬性的情況下映射一個到多個控件屬性。


        以編程的方法檢索資源值:

        可以使用聲明性語法將 ASP.NET 服務器控件屬性值設置為資源值,也可以以編程方式檢索資源值。如果在設計時資源值未知或者需要根據(jù)運行時條件設置資源值,可能會這樣做。

        可以從本地資源文件和全局資源文件中獲取資源值,這些文件使用的方法返回一個可強制轉換為適當類型的對象。由于 ASP.NET 使用強類型編譯全局資源,因此也可以使用強類型成員獲取全局資源。

        調用 GetLocalResourceObjectGetGlobalResourceObject 方法以分別從全局資源文件或本地資源文件中讀取特定的資源。在 HttpContext 和 TemplateControl 類中提供了這些重載方法。

        GetGlobalResourceObject 方法采用資源類名和資源 ID。該類名基于的是 .resx 文件名。例如,文件 WebResources.resx 和所有相關聯(lián)的本地化文件都由類名 WebResources 引用。

        GetLocalResourceObject 方法采用表示 ResourceKey 屬性的資源名。

        下面的代碼示例演示如何從本地資源文件和全局資源文件獲取資源值。這些方法返回一個對象;因此,必須將該資源強制轉換為適當?shù)念愋汀?/p>

        存儲在 App_LocalResources 特殊文件夾中的默認本地資源文件根據(jù) ASP.NET 頁命名。例如,如果在 Default.aspx 頁中使用了下面的代碼,則必須將該資源文件命名為 Default.aspx.resx。在此示例中,向此文件添加了一個名為 Button1.Text 的字符串資源,并且該資源帶有 "Found Resources" 值。

        此外,在此示例中,存儲在 App_GlobalResources 特殊文件夾中的默認全局資源文件命名為 WebResourcesGlobal.resx。向此文件添加了一個名為 LogoUrl 的字符串資源,而且該資源帶有http://go.microsoft.com/fwlink/?LinkId=49295 值或其他圖像的 URL

<%@ Page Language="C#" %>

<script runat="server">
    
protected void Button1_Click(object sender, EventArgs e)
    
{
        Button1.Text 
= 
            GetLocalResourceObject(
"Button1.Text").ToString();
        Image1.ImageUrl 
= 
            (String)GetGlobalResourceObject(
            
"WebResourcesGlobal""LogoUrl");
        Image1.Visible 
= true;
    }

</script>

<html  >
<head id="Head1" runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Button ID="Button1" runat="server" 
            OnClick
="Button1_Click" 
            Text
="Get Resources" />
        
<asp:Image ID="Image1" runat="server" 
            Visible
="false" />
    
</div>
    
</form>
</body>
</html>
使用強類型檢索全局資源
  • 按照下面的語法獲取資源:

    Resources.Class.Resource

    資源將編譯到命名空間 Resources 中,并且每個默認資源都將成為 Resources 類的成員。例如,如果創(chuàng)建了默認資源文件 WebResources.resx,并且該文件包含一個名為 WelcomeText 的資源,則可以在代碼中引用該資源,如下面的代碼示例所示:

    String welcome;
    welcome 
    = Resources.WebResources.WelcomeText;

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多