ASP.NET的國際化思想和Java等語言基本相同。都是通過資源文件查找相應(yīng)的內(nèi)容。
要知道ASP.NET如何國際化,讓我們從后面說起。
一、原理
我們事實上是通過ResourceManager的GetString方法來獲得資源的。
public virtual string GetString(
string name,
CultureInfo culture
);
name是資源的ID.CultureInfo是一個用來表示文化的類。
可以用如下方法初始化culture
public static CultureInfo CreateSpecificCulture(
string name
);
我們可以初始化一個叫abc的文化CultureInfo.CreateSpecificCulture("abc")
ResourceManager類通過如下的方法來確定資源文件的名字和路徑
public static ResourceManager CreateFileBasedResourceManager(
string baseName,
string resourceDir,
Type usingResourceSet
);
CreateFileBasedResourceManager("business","D:\Poi Project\LTS2005\resources\"_
+System.IO.Path.DirectorySeparatorChar,null);
表示資源文件的路徑是:D:\Poi Project\LTS2005\resources\,文件名是business.*.resources
如果CultureInfo是abc那么GetString將在D:\Poi Project\LTS2005\resources\business.abc.resources
文件根據(jù)相應(yīng)的資源ID找到所需要的資源
二:如何制作資源文件
使用 resgen 從文本文件編譯資源文件:
“resgen strings.txt”生成一個名為 strings.resources 的文件
resgen 的位置在Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin下
strings.txt的格式如下所示:
---------------------------------
;提示 promptCulture = 請選擇希望用來查看此示例的區(qū)域性 ==> promptName = 請輸入您的姓名 ==>
;距離 dist1 = (以英里為單位)==>
;溫度量度 degree1 = 以華氏度為單位: degree2 = -100 degree3 = 140 |
------------------------------------
注:我們可以通過CultureInfo關(guān)鍵字在MSDN中查找資源國家代碼