成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實現ASP.NET全球化

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

一、 ASP.NET全球化信息

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

四個資源文件


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

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

由于這個方法位于Page類中,并且我不想針對每一個web頁面都重復相同的代碼,所以我創建了一個BasePage類,我的應用程序中的所有的aspx頁面都派生自這個BasePage類。但是現在,我又面臨另一個問題。

回到UI設計:我使用了一個MasterPage和一個Header用戶控件(在一個ContentPlaceHolder內)。我把一個缺省的頁面與該MasterPage相關聯。整個站點必須動態地實現本地化。因此,在頂部,有一個下拉框,用戶可以從中選擇一種語言/文化。在BasePage的 InitilializeCulture方法中,我必須取得用戶從下拉框選擇的項的值;但是,因為它還沒有被初始化,所以,我還不能存取任何控件的值。答案是:使用表單集合(從響應對象內)。

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

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

二、設置語言方向相應的dir屬性

許多時候,我們還需要設置本地化文本的方向(這是使用<html> 或<body>標簽的dir屬性設置的)。這是必需的,因為有些語言從右到左(RTL)讀取,例如Arabic,不同于象Hindi和 English這樣語言的標準的從左到右(LTR)的讀取方式。這可以通過把.resx文件中的dir屬性設置為適當的值來實現。

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

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


三、使用數據庫實現本地化

我們已經看到了如何本地化控件的文本和UI描述。但是,存儲在數據庫中的內容會怎么呢?其實,這一部分內容也需要本地化,但是由于它存儲在一個DB中,所以我們不能使用資源文件來實現相同目的。為此,我們需要創建新的表格。

假定我有一個存儲用戶評價的表格。該表格結構如下所示:

存儲用戶評價的表格

現在,我們想實現以本地化的文本來顯示Comments和Name字段,但是,我們不可能把所有這些域的不同語言版本都存儲在同一個表格中(既然存在不需要被本地化但卻重復的其它域)。因此,我們需要重新組織該表格結構并且創建另一個表格來存儲這兩個域的本地化版本。首先,我們需要從這個表格中刪除這兩個域并創建一個如下所示的新表格:

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

在此,我們添加了一個新域:CultureID,它等價于LCID(或Locale標識符)。我們能夠按如下所示添加文化特定的本地化數據:

添加文化特定的本地化數據

現在,我們可以使用以CultureID(LCID)作為參數的SQL查詢來取得本地化內容。我們還能夠提供一個用戶接口來把本地化數據輸入到這樣的表格以便能夠以一種交互方式創建相應的內容。

四、總結

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

【編輯推薦】

  1. ASP.NET插件的實現方式
  2. 概述ASP.NET應用程序
  3. 淺談ASP.NET 2.0數據綁定
  4. ASP.NET阻止Java Script注入式攻擊
  5. ASP.NET MVC使用T4
責任編輯:佚名 來源: 51CTO博客
相關推薦

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

實現ASP.NET網站

2009-07-28 15:29:03

實現HTTP請求ASP.NET

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

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認證Form表單

2009-07-24 10:53:51

ASP.NET實現靜態

2009-08-05 14:27:55

ASP.NET模板基本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄视频欧美| 亚洲欧美视频在线观看 | 四虎在线视频 | 国产成人短视频在线观看 | 欧美精品乱码久久久久久按摩 | www.久久| 久久精品在线 | 久久一级免费视频 | 久久精品视频网站 | 欧美日本韩国一区二区 | 日韩一区二区三区视频 | 亚洲高清在线 | 久久精品久久综合 | 欧美日韩中文字幕在线 | 久久久国产一区 | 特级特黄特色的免费大片 | 亚洲国产成人精品女人久久久野战 | 91pao对白在线播放 | 成人特区 | 福利久久 | 欧美精品综合在线 | 日韩中文视频 | 色精品视频 | 日韩在线视频免费观看 | 成人福利网 | 日韩精品一区二区三区视频播放 | 久久国产精品无码网站 | 国产激情视频 | 日本在线看片 | 亚洲天堂中文字幕 | 精品久久成人 | 黄网站在线观看 | 爱草在线| 亚洲色图综合 | 成人精品一区二区户外勾搭野战 | 人人干人人玩 | 亚洲欧洲中文日韩 | 91电影 | 神马久久久久久久久久 | 在线男人天堂 | 亚洲成人精品国产 |