怎么做 Satellite assemblies
时间:2011-01-14 来源:livenn
基本介绍:
http://codeguru.earthweb.com/csharp/.net/net_general/tipstricks/article.php/c11367/
Culture Codes:
http://sharpertutorials.com/list-of-culture-codes/
1: 创建C# Assembly:
命名为:MyAssembly;
2: 添加Resources.resx;
这里有两种方法:
(1) 使用工程属性里面的Resources Tab,生成默认的Resources.resx文件。
(2)使用Add NEw Item添加Resources File.
这样生成的Resources就有一个默认的Resources.Designer.cs文件。这里面有一个很重要的字符串,一定要注意这个字符串,这个字符串是我们后面创建所创建的SA能够被系统自动加载的关键。
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MyAssembly.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
3:准备Localization 文件。
(1)给刚才生成的资源文件添加 String 资源,key 为: “String1” 和“String2”;
(2)调用VS的Command工具,切换到Resources.resx所在目录下,执行以下命令:
resgen Resources.resx Resources.en-US.txt
这样就使用默认的Resources生成了你所需要被翻译人员所使用的一个txt 文件。重复生成多种语言的txt文档。改Txt内容如下:
String1=resource.default
String2=resource default string 2
4:生成以Resources为后缀的资源文件:
当翻译人员翻译好Txt后,使用如下VS的Command工具,调用以下命令:
resgen Resources.en-US.txt MyAssembly.Properties.Resources.en-US.resources;
这里生成resources文件时的那个红色的字符串一定要和前文创建ResourceManager时的字符串一致。
5:生成SA:
调用下面命令:
al /t:lib /embed:MyAssembly.Properties.Resources.en-US.resources /out:MyAssembly.resources.dll /c:en-US
这样就生成了用于SA的 resources dll文件。
6:部署:
在MyAssembly.dll所在目录下创建文件夹 en-US.把生成的MyAssembly.resources.dll放在里面。
每个不用的语言对应不同的文件夹。
好了,做完上面的步骤,就完成了一个SA的制作,自己试试看吧。
改变运行环境的语言:
string cultureInfo = “en-US";
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cultureInfo);