C# Winform软件快速开发框架|软件开发平台 - 界面多语言实现原理
![]() ![]() 软件开发框架简介 C/S系统软件快速开发框架支持多国语言界面,语言资料存储在CSFrameworkVXX.System数据库的sys_Language表。目前支持中文繁体、简体、英文、越南文(默认是中文简体),分别对应的字段名称:CHS\CHT\ENG\VN,您可通过系统管理模块的【多语言管理】进行维护语言库资料。 软件优势 1. 自动初始化所有界面的默认语言到语言数据库。 2. 提供多语言管理界面,管理和维护语言库资料。 3. 使用方面,容易扩展。 ![]() 支持多语言的开发框架版本 ![]() 多语言实现机制原理 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,您也可以增加查询条件。 多语言界面展示 ![]() ![]() 默认简体中文 ![]() 切换为英文 ![]() 系统管理模块进行多语言管理: ![]() ![]() ![]() ![]() 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 Baidu翻译的英文界面效果: ![]() Baidu翻译的英文界面效果: ![]() ![]() 扫一扫加微信 ![]() ![]()
参考文档:
C# C/S结构快速开发框架标准版V2.2 - 视频介绍 基于C#.NET C/S快速开发框架 - 代码自动生成功能 C#.Net快速开发框架 - ORM ,BLL,DAL三者关系 C#.Net CS快速开发框架- 新增业务模块(视频下载) C# Winform CS结构快速开发框架高级版V3.0 - 视频介绍 C#.NET快速开发框架 关于C/S框架网C#.NET快速开发框架现场培训 C# Winform增删查改快速开发框架|C/S框架网 C#.NET快速开发框架成功案例-港口散杂货管理系统,港口管理信息系统MIS 【原创】C# Winform进销存系统快速开发框架 原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架 Winform界面自适应快速开发框架(C#+Dev+三层架构+多数据库支持) 基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库) Winform软件快速开发框架(使用DevExpress正版授权皮肤组件) C#三层架构系统 C#.NET三层架构快速开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |