.NET软件开发平台标准版V2.3 - 支持多语言(中文繁体、简体、英文、越南文)
作者:C/S框架网|www.cscode.ne  发布日期:2021/05/18 18:08:28
  .NET软件开发平台标准版V2.3 - 支持多语言(中文繁体、简体、英文、越南文)

.NET软件开发平台标准版V2.3 - 支持多语言(中文繁体、简体、英文、越南文)

适用开发 适用开发:制造、服务、零售等行业的ERP、MRP、MES、CRM、MIS、HIS、POS数据管理应用系统
运行平台 运行平台:Windows + .NET Framework 4.0
开发工具 开发工具:Visual Studio 2015,C#语言
数据库 数据库:Microsoft SQLServer 2008R2
C/S系统开发框架标准版V2.2


标准版V2.3(开发框架+三层+ADO Direct+SQL)

标准版V2.3是从07年开发的2.0版改进而来,是一套标准的三层开发框架(UI,BLL,DAL+SQL)。作者总结多年开发经验,2.2版引入更多的设计技巧的设计思想,从量和质两个方面讲有很大跨越,主要体现在用户快速开发体验和构架设计层面。我们重新设计了类生成器(Class Generator)工具,Class Generator可以自动生成ORM,BLL,DAL及部分窗体的源码,改进了自动加载模块子程序、权限管理、后台数据更新模型、业务层和数据层基类等等,全面优化了框架各个模块的功能接口和源代码,并补充完整清晰的代码注释,增加多个单表,主从表的数据窗体作为开发模板.


2.2版架构精良,技术成熟,适合快速开发任何数据库管理系统。业务层和数据层的基类实现了大部分通用功能,数据字典窗体的查询、提交数据功能的后台部分几乎不需要编写代码,即可快速完成开发。框架集成多个单表,主从表的数据窗体,实现了增、删、改、查、审核、打印、日志查询等框架内提供的通用功能,参考这些窗体及报表模板并辅助代码自动生成,即可快速定制开发新的功能窗体,期望快速开发软件项目,V2.3版将成为您的首选开发框架。


V2.3版没有集成WebService/WCF技术构架,所以BLL层与后台的DAL层是直接通信的,也就是说没有WebService /WCF中间层,所以开发更快速,构架更精简。

贴图图片-winform多语言(2)




内容简介:


C/S系统开发框架 - 标准版V2.3(快速开发版)新增多语言支持,语言资料存储在CSFramework23.System数据库的sys_Language表。目前支持中文繁体、简体、英文、越南文,分别对应的字段名称:CHS\CHT\ENG\VN,您可通过系统管理模块的【多语言管理】进行维护语言库资料。


多语言实现机制原理


1.每一条语言信息定义一个唯一的编号(ObjectID),作为语言编码,通过ObjectID获取语言资料。

2.定义两种语言数据类型(ItemType,Message/Control),
Message 类型是普通消息,既用户自定义消息,消息内容本身作为ObjectID存储。
Control 类型是窗体界面的组件,获取或设置组件的.Text,.Caption属性的值。

3. 系统通过枚举Form的组件成员对象自动将.Text或.Caption的值添加到语言库,作为默认语言。

4. 独立封装语言库程序包,CSFramework2.3.Language.dll

5. 提供语言库处理程序,LanLib工具类。通过LanLib.Get()方法获取语言。


C# Code:

/// <summary>
/// 多语言管理类
/// </summary>
public class LanLib
{
  
//当前语言类型
  
private static LanguageType _Current = LanguageType.CHS;
  
  
/// <summary>
  
///语言类型
  
/// </summary>
  
public static LanguageType Current { get { return _Current; } set { _Current = value; } }
  
  
/// <summary>
  
/// 语言资料库策略接口
  
/// </summary>
  
public static ILanguage LanguageData { get; set; }
  
  
/// <summary>
  
/// 获取控件的文本(Text/Caption)的多语言
  
/// </summary>
  
/// <param name="objectID">语言标识</param>
  
/// <param name="defaultValue">默认值</param>
  
/// <returns></returns>
  
public static string Get(string objectID, string defaultValue)
  {
    
return LanguageData.Get(objectID, defaultValue, LanguageDataType.Control);
  }
  
  
//获取控件的文本(Text/Caption)的多语言
  
public static string Get(LanguageType type, string objectID, string defaultValue)
  {
    
return LanguageData.Get(type, objectID, defaultValue, LanguageDataType.Control);
  }
  
  
//获取控件的文本(Text/Caption)的多语言
  
public static string GetByMatch(string objectID, string defaultValue)
  {
    
return LanguageData.GetByMatch(objectID, defaultValue, LanguageDataType.Control);
  }
  
  
/// <summary>
  
/// 获取用户自定义消息的多语言
  
/// </summary>
  
/// <param name="userMsg">用于自定义消息</param>
  
/// <returns></returns>
  
public static string Get(string userMsg)
  {
    
return LanguageData.Get(userMsg);
  }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





如何扩充自定义语言?


若要扩充语言,首先在sys_LanguageType表添加一种语言类型(如:XX),然后在sys_Language表添加一个语言类型字段(XX),字段名称必须与语言类型一致!!! 

打开VS,修改系统管理模块的【多语言管理】界面,在表格中添加一列,列的字段对应:XX,您也可以增加查询条件。



多语言界面展示



贴图图片-csframework-multi-lan多语言界面框架


贴图图片-csframework-multi-lan多语言界面框架1



系统管理模块进行多语言管理:


贴图图片-csframework-multi-lan多语言界面框架3



贴图图片-csframework-multi-lan多语言界面框架2


贴图图片-csframework-multi-lan多语言界面框架6



贴图图片-csframework-multi-lan多语言界面框架5



C#实现:


Form继承ILanguageSupport接口,然后在Form.Load事件调用this.SetLanguage方法。


C# Code:

/// <summary>
/// 支持多语言的接口
/// </summary>
public interface ILanguageSupport
{
  
/// <summary>
  
/// 设置语言
  
/// </summary>
  
void SetLanguage();
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




C# Code:

/// <summary>
/// 接口的方法,设置当前窗体的语言
/// </summary>
public virtual void SetLanguage()
{
  
this.Text = LanLib.Get(LanLib.Current, this.GetType().FullName, this.Text);
  LanTool.SetLanguage(
this);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇