逐步解說 將Web Form網頁國際化

2021-03-31 14:33:20 字數 4053 閱讀 1326

[選摘自:http://msdn.microsoft.***/library/cht/default.asp?url=/library/cht/vbcon/html/vbwlkwalkthroughlocalizingwebforms.asp]

當您將 web form 網頁當地語系化時,visual studio 系統不會自動產生資源檔案。您必須手動建立和編輯 xml 資源檔案。這個主題會示範如何加入資源檔案,然後使用 xml 編輯,以英文、中文來建立資源。這個主題也討論如何編寫訪問這些資源的程式。

您也可將文字內容轉換成資源檔案。如需詳細說明,請參閱文字格式的資源和資源檔案生成器 (resgen.exe)。

a. 如何手動建立並編輯資源檔案

1. 建立名為 locproject 的 asp.*** web 應用程式。如需詳細說明,請參閱建立 web 專案。

注意:程式中會使用專案名稱 locproject

2. 在專案中,加入新項(add new item...)

3. 選擇 "資源檔案"(assembly resource file) 。檔名為 strings.resx (名稱中間不能有".",否則,容易錯誤)。資源檔案 strings.resx 將會包含英文的原有資源。每當應用程式找不到更適合 ui 文化特性的資源,就會訪問這些資源。

檔案將加入至專案中,並在 xml 設計工具 中開啟。

4. 在 "資料表"(data tabls:) 列表中,選擇 "data"。

5. 在 "資料" (data:) 頁面中,增加2行資料 txtsearch 和 txtwel***e, 如下:

name       value

txtsearch  search for the following text:

txtwel***e wel***e to localization!

6. 再重複1次步驟 2 到 5,建立另外乙個命名為 strings.zh-chs.resx.resx 的資料檔案,資料如下:

b. 如何訪問資源

1. 加入 system.resources 和 system.globalization 命名空間。以下**如下:

' visual basic

imports system.resources

imports system.globalization

public class webform1

inherits system.web.ui.page

// c#

using system.resources;

using system.globalization;

namespace locproject

2. 宣告 resourcemanager 類的變數 locrm

' visual basic

public class webform1

inherits system.web.ui.page

protected locrm as resourcemanager

// c#

namespace locproject_cs

{public class webform1 : system.web.ui.page

{protected resourcemanager locrm;

3. 將以下**加入到 webform1 方法 page_load 中,建立 resourcemanager 類的例項。resourcemanager 建構函式使用兩個引數。第乙個是資源檔案的根名稱,也就是不含文化特性和 .resx 字尾的資源檔名稱。第二個引數是主要元件。

' visual basic

locrm = new resourcemanager("locproject.strings", gettype(webform1).assembly)

// c#

locrm= new resourcemanager("locproject.strings", typeof(webform1).assembly);

注意:如果您沒有將專案命名為 locproject,就應該修改資源檔案的根名稱。

c. 如何顯示頁面中的靜態資源字串

將**放在標記 (tag) 之間:

注意: resourcemanager 中區分大小寫。

d. 如何將資源字串賦給控制項的屬性

1. 加入**:

' visual basic

label1.text=locrm.getstring("txtsearch")

label2.text=locrm.getstring("txtwel***e")

//c#

label1.text=locrm.getstring("txtsearch");

label2.text=locrm.getstring("txtwel***e");

2. 增加 system.threading 命名空間。

' visual basic

' import this namespace at the beginning of the code module

imports system.threading

// c#

// import this namespace at the beginning of the code module.

using system.threading;

3. 將下列**加入 page_load 方法的起始處,指定 web form 網頁應按照瀏覽器的 accept-language 標題中所指定之文化特性來顯示資源和格式。這段**相當重要,因為如果沒有的話,您的 web 應用程式就會按照伺服器的文化特定設定,而這可能對 web form 網頁的遠端使用者並不適用。

' visual basic

' set the culture and ui culture to the browser's accept language

thread.currentthread.currentculture = cultureinfo.createspecificculture(request.userlanguages(0))

thread.currentthread.currentuiculture = new cultureinfo(request.userlanguages(0))

// c#

// set the culture and ui culture to the browser's accept language

thread.currentthread.currentculture = cultureinfo.createspecificculture(request.userlanguages[0]);

thread.currentthread.currentuiculture = new cultureinfo(request.userlanguages[0]);

編譯、執行就可以看到結果。控制面板/區域選項 中,如果選擇:中文(中國),就會顯示中文網頁;如果選擇其它,則會顯示英文網頁。

[總結步驟:]

1). 建立需要使用的資源字串檔案

2). 獲取客戶端的區域設定

thread.currentthread.currentculture = cultureinfo.createspecificculture(request.userlanguages[0]);

thread.currentthread.currentuiculture = new cultureinfo(request.userlanguages[0]);

3). 建立讀取資源字串的物件

(**一定要在 2). 之後)

' visual basic

locrm = new resourcemanager("locproject.strings", gettype(webform1).assembly)

// c#

locrm= new resourcemanager("locproject.strings", typeof(webform1).assembly);

4). 讀取資源字串,完成介面國際化

label2.text=locrm.getstring("txtwel***e");

將 Latex 變成網頁(然後Word)

看了網上的一些方法,發現都是很久以前的了,現在的要方便很多。1.安裝 ctex 2.9.0 完整版 和 imagemagick imagemagick 可以將各種和數學公式轉成統一的,命令為 convert。安裝完了可以試一下。2.直接呼叫 htlatex main.tex,即可生成乙個 main....

如何用phpcms將靜態網頁生成動態網頁?

1.在templates資料夾下新建模板資料夾llli 名字可以自己隨便起 2.在lll下面新建資料夾content 必須為content 3.把靜態頁面拿到content資料夾裡面,順便改名字 4.把靜態網頁所用的資料夾 css,js,images 拿到statics資料夾下面 5.後台裡面設定模...

將網頁帶到桌面上來

前言 這不是乙個新鮮話題,高手繞行。這裡什麼都沒說,只是我想把網頁放在桌面應用上的一些構思。會者不難難者不會,眾多任務具都是乙個毛病,體積太大,我在這裡簡化那麼一簡化。why作為乙個放棄軟體n 年的老年程式設計師來說,軟體一直是個愛好,做點兒小工具什麼的。搞來搞去,也挺自在的,沒壓力大家懂的。說有那...