怎么做 Satellite assemblies

本文介绍怎么使用SA(Satellite assemblies) 做Localization。

基本介绍:

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);

      

转载于:https://www.cnblogs.com/livenn/archive/2011/01/14/1935809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值