[選摘自: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 年的老年程式設計師來說,軟體一直是個愛好,做點兒小工具什麼的。搞來搞去,也挺自在的,沒壓力大家懂的。說有那...