ASP.NET的国际化思想和Java等语言基本相同。都是通过资源文件查找相应的内容。
要知道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
文件根据相应的资源ID找到所需要的资源
二:如何制作资源文件
使用 resgen 从文本文件编译资源文件:
“resgen strings.txt”生成一个名为 strings.resources 的文件
resgen 的位置在Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin下
strings.txt的格式如下所示:
---------------------------------
;提示 promptCulture = 请选择希望用来查看此示例的区域性 ==> promptName = 请输入您的姓名 ==>
;距离 dist1 = (以英里为单位)==>
;温度量度 degree1 = 以华氏度为单位: degree2 = -100 degree3 = 140 |
------------------------------------
注:我们可以通过CultureInfo关键字在MSDN中查找资源国家代码