国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

ASP.NET 網(wǎng)站支持多語言

2019-11-17 01:55:59
字體:
來源:轉載
供稿:網(wǎng)友
asp.net 網(wǎng)站支持多語言

ASP.NET網(wǎng)站支持多語言

(本地資源文件和全局資源文件的調用及需注意的地方總結)

一、 本地資源文件(App_LocalResources)

①、 本地資源的生成及調用

1、本地資源的VS自動生成方法:

將頁面調整到【設計】視圖,然后在VS2008菜單欄中

【工具】=》【生成本地資源】即可生成該頁面的資源文件,在App_LocalResources文件夾中可查看。eg:Default2.aspx.resx

2、本地資源的手動生成方法:

選中網(wǎng)站=》添加新項=》然后選擇【資源文件】即可創(chuàng)建一個資源文件,但是此時可以看到剛剛創(chuàng)建的資源文件.resx存放在App_GlobalResources文件夾中,當前為全局資源文件,需要在網(wǎng)站中創(chuàng)建一個名為App_LocalResources的文件夾(即本地資源文件夾)然后將剛剛創(chuàng)建的全局資源文件拖到當前文件夾中即可,然后在調用的時候需要在控件中添加meta:resourcekey=”資源鍵” 代碼,具體在調用中講解。

3、本地資源的調用:

(1)、服務器控件

1.1、前臺隱示使用本地化資源,VS2008自動生成本地資源在控件中就會自動包含meta:resourcekey=”資源鍵” 代碼,如果某控件未掃描到則就不會有該代碼標識需要手動添加此代碼

eg:

<asp:Label ruant=”server” ID=”lbl_msg” meta:resourcekey=”lbl_msg” ></asp:Label>

1.2、前臺顯示使用本地化資源

eg:

<asp:Label ruant=”server” ID=”lbl_msg”

Text=”<%$ Resources: lbl_msg .Text %>

ToolTip=”<%$ Resources: lbl_msg .ToolTip %>

></asp:Label>

藍色圖標和紅色圖標表示綁定數(shù)據(jù)形式(顯示/隱示),如下圖示:

1.3、后臺編碼時使用本地化資源

方法一:

//后臺通過資源鍵來獲取資源值,然后賦值給頁面對象

this.txtbox1.Text=(string)GetLocalResourceObject("資源鍵");

this.txtbox1.Text=(string)HttpContext.GetLocalResourceObject("資源文件名", "資源鍵");

(2)、非服務器控件(HTML控件,input …):

1.1、html控件或input控件都無法自動生成資源文件,需要手動添加meta:resourcekey=”資源鍵” 標記,并將其添加到資源文件中,但必須注意的是控件中必須添加服務器標識屬性,即:runat=”server”

eg:

<input id=”txt_msg” type=”text” meta:resourcekey=” txt_msg” />

測試結果:無法顯示資源txt_msg值,將其修改如下:

<input id=”txt_msg” type=”text” meta:resourcekey=”txt_msg” runat="server" />

測試結果:正常顯示資源txt_msg

②、注意事項:

1、 每個頁面必須包含一個默認的本地資源文件,(資源文件名和頁面文件名區(qū)別在于資源文件名是在頁面文件名(包含文件的后綴)基礎上添加一個.resx后綴)

eg:index.aspx.resx

默認的本地資源文件的作用:當其他本地資源文件,eg:index.aspx.en-US.resx 或…資源文件中未包含某,而默認的本地資源文件中包含某,則從默認的本地資源文件中取值。

2、 如果頁面需要支持多語言則可以復制默認的本地資源文件,然后修改其文件名稱

eg:index.aspx.en-US.resx(英文)

然后將index.aspx.en-US.resx中的鍵值修改為英文即可

3、 1)如果需要將所有的頁面都使用同一種語言則可以配置web.config文件,前提將頁面Page指令中的culture="auto" uiCulture="auto" 刪除,否則首先使用頁面中的語言形式

eg:

<system.web>

<!—en-US(英文),zh-CN(中文) …

UICulture-針對用戶界面的安鈕之類的控件顯示Culture-決定各種數(shù)據(jù)類型是如何組織,如數(shù)字與日期,貨幣-->

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

</system.web>

2)如果某個頁面和其他的頁面使用的語言不同,則可以在某個頁面Page命令中設置culture和uiCulture, 這兩個屬性的作用是使頁面優(yōu)先跟據(jù)瀏覽器的語言設置自動加載相應語言的資源文件等顯示方式

eg:

<%@ Page culture="zh-CN" uiCulture="zh-CN" %>

4、 如果想在頁面后臺(即.cs文件)通過傳遞參數(shù)的方式設置使用的語言,則

eg:

命名空間引用:

using System.Threading;

using System.Globalization;

PRotected override void InitializeCulture()

{

string culture = Request.QueryString[“culture”].ToString();

if (culture != "")

{

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);

Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);

}

else

{

//默認中文

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-CN");

Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");

}

base.InitializeCulture();

}

通過傳遞編碼參數(shù)的方式,進行重寫InitializeCulture (初始化語言方法)來改變頁面語言顯示方式。

5、 本地資源文件只能在本頁面調用,不能被其他頁面調用,假如有兩個頁面Index1.aspx和Page 2.aspx則,如下資源文件

eg:Index1.aspx.resx

Page2.aspx.resx

Index1.aspx頁面不能調用Page 2.aspx.resx中的資源鍵值;

Page 2.aspx頁面也不能調用Index1.aspx.resx中的資源鍵值;

Index1.aspx頁面只能調用Index1.aspx.resx中的資源鍵值;

Page 2.aspx頁面只能調用Page 2.aspx.resx中的資源鍵值;

二、 全局資源文件(App_GlobalResources)

、全局資源的生成及調用

1全局資源的手動生成方法:

選中網(wǎng)站=》添加新項=》然后選擇【資源文件】即可創(chuàng)建一個資源文件,但是此時可以看到剛剛創(chuàng)建的資源文件.resx存放在App_GlobalResources文件夾中,當前為全局資源文件.

2、前臺全局資源文件的調用:

1)、在需要調用的控件中添加<%$ Resources : 資源文件名,資源鍵 %>

eg

<asp:Label ID="lbl_global" runat ="server" Text ="<%$ Resources:langlbl_global %>">

</asp:Label>

2)、前臺頁面級javaScript調用全局資源文件方法:

<%= Resources .資源文件名 . 資源鍵 %>

eg

<script>

var msg=” <%= Resources . lang . lbl_global %>

</script>

3、后臺全局資源文件的調用:

1)、在后臺直接使用Resources .資源文件名 .資源鍵 方可獲取資源值

eg

this. lbl_global.Text=Resources . lang . lbl_global ;

//后臺獲取image類型對象

System.Drawing.Bitmap imgJpg= Resources.lang.img_jpg

2)、

//后臺通過資源鍵來獲取資源值,然后賦值給頁面對象

this.lbl_global.Text=(string)GetGlobalResourceObject ("資源鍵");

this.lbl_global.Text=(string)HttpContext.GetGlobalResourceObject("資源文件名", "資源鍵");

3)、后臺使用 ResourceManager類來獲取資源

ResourceManager rm = new ResourceManager(Resource1.ResourceManager.BaseName,

Assembly.GetExecutingAssembly());

string str=rm. GetString(“資源鍵”);

注意事項:

1、全局的資源文件,存放在App_GlobalResources文件夾中,以.resx為后綴,首先必須添加一個默認的全局資源文件

eg:lang.resx

默認的全局資源文件的作用:①、當其他全局資源文件,eg:lang.en-US.resx 或lang.zh-CN.resx等 資源文件中未包含某,而默認的全局資源文件中包含某,則從默認的全局資源文件中取值;②、資源調用時只能通過默認的資源文件名去調用,即

Resources . lang . 資源鍵 (正確√)

而不能使用

Resources . lang . en-US . 資源鍵; (錯誤×)

lang.en-US.resx 或lang.zh-CN.resx 只是根據(jù)使用的語言不同來自動調用

2、全局資源文件可以在本網(wǎng)站的所有頁面中調用。

其他需要注意的地方和本地資源差不多,這里就不重復講解。

以上是我對本地資源和全局資源的理解,如果有錯誤的地方請各位大神給予指導。^.^

<

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜宁县| 高淳县| 海原县| 清水县| 尤溪县| 留坝县| 东乡县| 庆安县| 永嘉县| 凤台县| 桑日县| 蕲春县| 鄄城县| 井冈山市| 罗定市| 丰都县| 崇仁县| 塔河县| 宁陵县| 清苑县| 驻马店市| 陵川县| 沙坪坝区| 泰安市| 泸州市| 永顺县| 习水县| 花莲县| 乌拉特后旗| 广东省| 铅山县| 天津市| 西乌| 吉安市| 武宁县| 斗六市| 元氏县| 木里| 德阳市| 洛扎县| 平舆县|