使用ASP.Net2.0國(guó)際化你的網(wǎng)站祥解這個(gè)功能其實(shí)大家早就知道了,現(xiàn)在由于有一個(gè)項(xiàng)目要用到這個(gè)技術(shù),所以又去全面一些的查找了一下。自己紀(jì)錄一下,方便于以后查找使用吧。創(chuàng)建可有多種語(yǔ)言版本的 Web 應(yīng)用程序在 ASP.NET 2.0 版以前是一項(xiàng)復(fù)雜的任務(wù)。如果您使用資源文件 (RESX) 及 ResourceManager,則需要手動(dòng)分離出可本地化的元素,并執(zhí)行自己的資源加載過(guò)程,這需要花費(fèi)您很多的精力并需要編寫(xiě)大量的代碼。ASP.NET 2.0 版大大簡(jiǎn)化了此過(guò)程,并且增加了很多功能,如:
首先要在頁(yè)面級(jí)別(<%@ Page UICulture="auto" Culture="auto" %>)或整個(gè)Portal級(jí)別(在Web.config中<globalization uiCulture="auto" culture="auto"/>)定義特定
以編程的方法檢索資源值: 可以使用聲明性語(yǔ)法將 ASP.NET 服務(wù)器控件屬性值設(shè)置為資源值,也可以以編程方式檢索資源值。如果在設(shè)計(jì)時(shí)資源值未知或者需要根據(jù)運(yùn)行時(shí)條件設(shè)置資源值,可能會(huì)這樣做。 可以從本地資源文件和全局資源文件中獲取資源值,這些文件使用的方法返回一個(gè)可強(qiáng)制轉(zhuǎn)換為適當(dāng)類(lèi)型的對(duì)象。由于 ASP.NET 使用強(qiáng)類(lèi)型編譯全局資源,因此也可以使用強(qiáng)類(lèi)型成員獲取全局資源。 調(diào)用 GetLocalResourceObject 或 GetGlobalResourceObject 方法以分別從全局資源文件或本地資源文件中讀取特定的資源。在 HttpContext 和 TemplateControl 類(lèi)中提供了這些重載方法。 GetGlobalResourceObject 方法采用資源類(lèi)名和資源 ID。該類(lèi)名基于的是 .resx 文件名。例如,文件 WebResources.resx 和所有相關(guān)聯(lián)的本地化文件都由類(lèi)名 WebResources 引用。 GetLocalResourceObject 方法采用表示 ResourceKey 屬性的資源名。 下面的代碼示例演示如何從本地資源文件和全局資源文件獲取資源值。這些方法返回一個(gè)對(duì)象;因此,必須將該資源強(qiáng)制轉(zhuǎn)換為適當(dāng)?shù)念?lèi)型。 存儲(chǔ)在 App_LocalResources 特殊文件夾中的默認(rèn)本地資源文件根據(jù) ASP.NET 頁(yè)命名。例如,如果在 Default.aspx 頁(yè)中使用了下面的代碼,則必須將該資源文件命名為 Default.aspx.resx。在此示例中,向此文件添加了一個(gè)名為 Button1.Text 的字符串資源,并且該資源帶有 "Found Resources" 值。 此外,在此示例中,存儲(chǔ)在 App_GlobalResources 特殊文件夾中的默認(rèn)全局資源文件命名為 WebResourcesGlobal.resx。向此文件添加了一個(gè)名為 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>
|
|
|
來(lái)自: donixli1314 > 《ASP .NET》