C#.Net CS开发框架实现多语言(C/S框架网)
作者:C/S原创  发布日期:2011-04-15 14:59:12
C#.Net CS开发框架实现多语言(C/S框架网)

有多种方式实现软件界面的多语言支持功能, .Net本身做成了多语言机制,09年写的一个项目尝试使用.Net的多语言机制,后来发现维护极其困难,经常造成语言包数据丢失(语言被复盖),问题相当严重,在开发后期再改为自定义的机制实现了多语言. 参考这篇文章:

/// <summary>
/// 支持多语言的接口
/// </summary>
public interface ILanguageSupport
{
   /// <summary>
   /// 语言编号
   /// </summary>
   string LanguageISID { get; set; }
   
   /// <summary>
   /// 设置语言
   /// </summary>
   /// <param name="language"></param>
   void SetLanguage(string language);
   void SetLanguage();
   
   /// <summary>
   /// 设置语言标记。用于自动设置语言
   /// </summary>
   void SetLanguageTag();
}


// 来源:www.CSFramework.com, C/S结构框架学习网




/// <summary>
/// 多语言管理类
/// </summary>
public class LanguageProvider
{
   private static LanguageType _CurrentLanguageType = LanguageType.ENG;
   private static DataTable _Lans = null;
   private static Assembly _LanguageAssembly = null;
   
   /// <summary>
   ///语言类型
   /// </summary>
   public static LanguageType CurrentLanguageType { get { return _CurrentLanguageType; } set { _CurrentLanguageType = value; } }
   
   /// <summary>
   /// 语言数据
   /// </summary>
   public static DataTable LanguageData { get { return _Lans; } }
   
   /// <summary>
   /// 语言所在的程序集
   /// </summary>
   public static Assembly LanguageAssembly
   {
      get { return _LanguageAssembly; }
   }
   
   /// <summary>
   /// load language resource file
   /// </summary>
   public static void LoadLanguage(string appPath)
   {
      if (_LanguageAssembly != null) return;
      string lanPath = appPath @"\CSFramework.Languages.dll";
      if (!File.Exists(lanPath)) return;
      _LanguageAssembly = Assembly.LoadFrom(lanPath);
   }
   
   // 来源:www.CSFramework.com, C/S结构框架学习网
   


/// <summary>
/// 多语言类型
/// </summary>
public enum LanguageType
{
   ENG = 0,//英语
   CHN_T = 1,//繁体中文
   CHN_S = 2//简体中文
}

// 来源:www.CSFramework.com, C/S结构框架学习网




贴图图片






贴图图片






贴图图片




点击下载附件 (VIP会员下载) 点击下载附件 (如下载失败,请邮件通知我们寄回给您,或QQ:23404761留言.)
上一篇 下一篇