偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

實(shí)現(xiàn)ASP.NET全球化

開發(fā) 后端
本文介紹實(shí)現(xiàn)ASP.NET全球化,我們討論了有關(guān)實(shí)現(xiàn)ASP.NET全球化的一些重要方面,并且看到,這是非常容易實(shí)現(xiàn)的事情。

一、 ASP.NET全球化信息

在我的網(wǎng)站中,在創(chuàng)建資源文件并加入一些本地化數(shù)據(jù)后,我首先開始使用顯式本地化來(lái)設(shè)置控件(例如,在我的網(wǎng)站中的標(biāo)簽)的文本,以便它們可以從資源文件中得到它們的值。既然存在四種語(yǔ)言;所以,除一個(gè)完全可依賴的資源文件之外(沒有本地化命名),我創(chuàng)建了四個(gè)資源文件。

四個(gè)資源文件


注意,這些資源文件都以本地化標(biāo)記作為它們的中間名稱,因此,我需要把UICulture設(shè)置為與該本地化相同的名字以便ASP.NET存取這些資源文件。

但是,問(wèn)題是:我該怎樣在PostBack事件中動(dòng)態(tài)地改變文化呢?幸好,ASP.NET在Page類中提供了一種可重載的方法: InitializeCulture()。這個(gè)方法在頁(yè)面生命周期(在生成任何控件之前)中執(zhí)行得很早,并且在此,我們能夠設(shè)置當(dāng)前線程的UICulture和Culture。

由于這個(gè)方法位于Page類中,并且我不想針對(duì)每一個(gè)web頁(yè)面都重復(fù)相同的代碼,所以我創(chuàng)建了一個(gè)BasePage類,我的應(yīng)用程序中的所有的aspx頁(yè)面都派生自這個(gè)BasePage類。但是現(xiàn)在,我又面臨另一個(gè)問(wèn)題。

回到UI設(shè)計(jì):我使用了一個(gè)MasterPage和一個(gè)Header用戶控件(在一個(gè)ContentPlaceHolder內(nèi))。我把一個(gè)缺省的頁(yè)面與該MasterPage相關(guān)聯(lián)。整個(gè)站點(diǎn)必須動(dòng)態(tài)地實(shí)現(xiàn)本地化。因此,在頂部,有一個(gè)下拉框,用戶可以從中選擇一種語(yǔ)言/文化。在BasePage的 InitilializeCulture方法中,我必須取得用戶從下拉框選擇的項(xiàng)的值;但是,因?yàn)樗€沒有被初始化,所以,我還不能存取任何控件的值。答案是:使用表單集合(從響應(yīng)對(duì)象內(nèi))。

一旦我們從web應(yīng)用程序中提取了所有的內(nèi)容并且基于用戶選擇和使用Resources.TestWebSite.XXXPropertyName設(shè)置好了Culture和UICulture,那么,我們就已經(jīng)為我們的全球化框架作好了準(zhǔn)備?,F(xiàn)在,剩下的唯一事情是把資源特定的數(shù)據(jù)添加到相應(yīng)的資源文件中。針對(duì)每一種文件類型,我們需要有一個(gè)單獨(dú)的(和適當(dāng)命名的)資源文件。這個(gè)過(guò)程稱為本地化。在我的web.config文件中,我使用了下列屬性:

  1. <globalization responseEncoding"=utf-8" requestEncoding="utf-8" fileEncoding="utf-8" />  

二、設(shè)置語(yǔ)言方向相應(yīng)的dir屬性

許多時(shí)候,我們還需要設(shè)置本地化文本的方向(這是使用<html> 或<body>標(biāo)簽的dir屬性設(shè)置的)。這是必需的,因?yàn)橛行┱Z(yǔ)言從右到左(RTL)讀取,例如Arabic,不同于象Hindi和 English這樣語(yǔ)言的標(biāo)準(zhǔn)的從左到右(LTR)的讀取方式。這可以通過(guò)把.resx文件中的dir屬性設(shè)置為適當(dāng)?shù)闹祦?lái)實(shí)現(xiàn)。

首先,你可以在所有資源文件中創(chuàng)建一個(gè)Direction(你可以使用任何名)域,并基于單個(gè)資源文件把它的屬性設(shè)置為RTL或LTR。對(duì)于Arabic,這個(gè)域的值是RTL,而對(duì)于Hindi則是LTR。然后,把<body>標(biāo)簽的dir屬性設(shè)置為如下:

  1. <body runat="server" dir="<%$ Resources: TestSiteResources, Direction %>"> 


三、使用數(shù)據(jù)庫(kù)實(shí)現(xiàn)本地化

我們已經(jīng)看到了如何本地化控件的文本和UI描述。但是,存儲(chǔ)在數(shù)據(jù)庫(kù)中的內(nèi)容會(huì)怎么呢?其實(shí),這一部分內(nèi)容也需要本地化,但是由于它存儲(chǔ)在一個(gè)DB中,所以我們不能使用資源文件來(lái)實(shí)現(xiàn)相同目的。為此,我們需要?jiǎng)?chuàng)建新的表格。

假定我有一個(gè)存儲(chǔ)用戶評(píng)價(jià)的表格。該表格結(jié)構(gòu)如下所示:

存儲(chǔ)用戶評(píng)價(jià)的表格

現(xiàn)在,我們想實(shí)現(xiàn)以本地化的文本來(lái)顯示Comments和Name字段,但是,我們不可能把所有這些域的不同語(yǔ)言版本都存儲(chǔ)在同一個(gè)表格中(既然存在不需要被本地化但卻重復(fù)的其它域)。因此,我們需要重新組織該表格結(jié)構(gòu)并且創(chuàng)建另一個(gè)表格來(lái)存儲(chǔ)這兩個(gè)域的本地化版本。首先,我們需要從這個(gè)表格中刪除這兩個(gè)域并創(chuàng)建一個(gè)如下所示的新表格:

ASP.NET全球化與本地化之全球化

在此,我們添加了一個(gè)新域:CultureID,它等價(jià)于LCID(或Locale標(biāo)識(shí)符)。我們能夠按如下所示添加文化特定的本地化數(shù)據(jù):

添加文化特定的本地化數(shù)據(jù)

現(xiàn)在,我們可以使用以CultureID(LCID)作為參數(shù)的SQL查詢來(lái)取得本地化內(nèi)容。我們還能夠提供一個(gè)用戶接口來(lái)把本地化數(shù)據(jù)輸入到這樣的表格以便能夠以一種交互方式創(chuàng)建相應(yīng)的內(nèi)容。

四、總結(jié)

在本文中,我們討論了有關(guān)實(shí)現(xiàn)ASP.NET全球化的一些重要方面,并且看到,這是非常容易實(shí)現(xiàn)的事情.

【編輯推薦】

  1. ASP.NET插件的實(shí)現(xiàn)方式
  2. 概述ASP.NET應(yīng)用程序
  3. 淺談ASP.NET 2.0數(shù)據(jù)綁定
  4. ASP.NET阻止Java Script注入式攻擊
  5. ASP.NET MVC使用T4
責(zé)任編輯:佚名 來(lái)源: 51CTO博客
相關(guān)推薦

2010-08-05 09:59:55

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2021-01-05 07:51:06

版本化ASP

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-22 17:13:21

Asp.Net編程

2009-07-22 17:45:11

ASP.NET插件

2009-07-20 15:44:32

ASP.NET MVC

2009-07-28 10:01:16

ASP.NET Exc

2009-08-10 17:17:10

ASP.NET安裝部署

2009-08-05 17:58:34

實(shí)現(xiàn)ASP.NET網(wǎng)站

2009-07-28 15:29:03

實(shí)現(xiàn)HTTP請(qǐng)求ASP.NET

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計(jì)

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-23 16:59:31

ASP.NET認(rèn)證Form表單

2009-07-24 10:53:51

ASP.NET實(shí)現(xiàn)靜態(tài)

2009-08-05 14:27:55

ASP.NET模板基本
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)