C#WinForm国际化的简单实现

软件行业发展到今天,国际化问题一直都占据非常重要的位置,而且应该越来越被重视。对于开发人员而言,在编写程序之前,国际化问题是首先要考虑的一个问题,也许有时候这个问题已经在设计者的考虑范围之内,但终归要开发人员去做实现的。因此,如何实现国际化,是开发人员必须掌握的一项基本技能。
    今天,这里要讲的就是,在利用C#进行WinForm开发时,国际化是怎么实现的。鉴于时间及篇幅关系,这里仅仅介绍一种简单的国际化实现方法,可能这里提到的方法已经有非常多人提到过,但笔者还是不厌其烦地介绍一下。
    要在C#中实现国际化,需要相关资源文件,比如要在一个软件中支持英文、中文两种语言,那么就必须有这两种语言的资源文件,这在C#中可以采用资源文件(后缀名为.resx)来实现,我们不妨定义英文资源文件名称为Resource.en-US,中文资源文件名称为Resource.zh-CN,两种资源文件所涉及的ID都应该是一样的(这对于其他更多的资源文件均是一样的),只不过是展示的名称不同罢了。
    有了这两种资源文件,接下来就要考虑如何做的问题了。为了适应多处使用的情形,这里笔者单独编写了一个类ResourceCulture,该类包含了一些静态方法,主要作用是用来设置当前语言及返回当前的语言的相关字符串。该类代码如下:

[c-sharp] view plaincopyprint?

  1. using System.Reflection;  
  2. using System.Resources;  
  3. using System.Threading;  
  4. using System.Globalization;  
  5.   
  6. namespace GlobalizationTest  
  7. {  
  8.     class ResourceCulture  
  9.     {  
  10.         /// <summary>  
  11.         /// Set current culture by name  
  12.         /// </summary>  
  13.         /// <param name="name">name</param>  
  14.         public static void SetCurrentCulture(string name)  
  15.         {  
  16.             if (string.IsNullOrEmpty(name))  
  17.             {  
  18.                 name = "en-US";  
  19.             }  
  20.   
  21.             Thread.CurrentThread.CurrentCulture = new CultureInfo(name);  
  22.         }  
  23.   
  24.         /// <summary>  
  25.         /// Get string by id  
  26.         /// </summary>  
  27.         /// <param name="id">id</param>  
  28.         /// <returns>current language string</returns>  
  29.         public static string GetString(string id)  
  30.         {  
  31.             string strCurLanguage = "";  
  32.   
  33.             try  
  34.             {  
  35.                 ResourceManager rm = new ResourceManager("GlobalizationTest.Resource", Assembly.GetExec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值