C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现
以前的开发平台里,是用xml语言包实现了多语言功能,现在新的平台里进行了调整,把多语言包资源放在数据库表里实现了。

我们系统预留了多语言的配置全局变量、可以通过配置这个参数达到切换多语言的目的

我们在选项管理里增加一个多语言选择的选项目,然后有哪些语言资源就加上去

下面的表是多语言的数据库设计表结构

下面图是多语言的数据库里的资源设置情况

这个是多语言的设置管理界面参考


下面是多语言的管理窗体位置

多语言例子程序参考:
/// <summary>
/// 获取多语言
/// </summary>
public void GetLanguage()
{
this.grbLanguage.Text = this.GetLanguage(this.grbLanguage);
this.lblLanguageCode.Text = this.GetLanguage(this.lblLanguageCode) + ":";
this.lblMessageCode.Text = this.GetLanguage(this.lblMessageCode) + ":";
this.lblCaption.Text = this.GetLanguage(this.lblCaption) + ":";
this.btnAdd.Text = this.GetLanguage(this.btnAdd);
this.btnSave.Text = this.GetLanguage(this.btnSave);
this.btnCancel.Text = this.GetLanguage(this.btnCancel);
} public string GetLanguage(Control control)
{
string result = string.Empty;
string key = this.Name + "." + control.Name;
string caption = control.Text;
result = ClientCache.Instance.GetLanguage(this.UserInfo, key, BaseSystemInfo.CurrentLanguage, caption);
return result;
}
多语言接口程序参考:
//-----------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2015 , Hairihan TECH, Ltd.
//----------------------------------------------------------------- using System.Data;
using System.ServiceModel;
using System.Collections.Generic; namespace DotNet.IService
{
using DotNet.Utilities;
using DotNet.Model; /// <summary>
/// ILanguageService
/// 多语言接口
///
/// 修改纪录
///
/// 2015.02.24 版本:1.0 JiRiGaLa 创建主键。
///
/// <author>
/// <name>JiRiGaLa</name>
/// <date>2015.02.24</date>
/// </author>
/// </summary>
[ServiceContract]
public interface ILanguageService
{
/// <summary>
/// 获取实体
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="id">主键</param>
/// <returns>实体</returns>
[OperationContract]
BaseLanguageEntity GetObject(BaseUserInfo userInfo, string id); /// <summary>
/// 添加
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="entity">实体</param>
/// <param name="statusCode">返回状态码</param>
/// <param name="statusMessage">返回状态信息</param>
/// <returns>主键</returns>
[OperationContract]
string Add(BaseUserInfo userInfo, BaseLanguageEntity entity, out string statusCode, out string statusMessage); /// <summary>
/// 编辑
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="entity">实体</param>
/// <param name="statusCode">返回状态码</param>
/// <param name="statusMessage">返回状态信息</param>
/// <returns>影响行数</returns>
[OperationContract]
int Update(BaseUserInfo userInfo, BaseLanguageEntity entity, out string statusCode, out string statusMessage); /// <summary>
/// 设置多语言
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="messageCode">语言编号</param>
/// <param name="enUS">英文</param>
/// <param name="zhCN">简体中文</param>
/// <param name="zhTW">繁体中文</param>
/// <returns>影响行数</returns>
[OperationContract]
int SetLanguage(BaseUserInfo userInfo, string messageCode, string enUS, string zhCN, string zhTW); /// <summary>
/// 按编号获取多语言
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="messageCode">语言编号</param>
/// <returns>列表</returns>
List<BaseLanguageEntity> GetLanguageByMessageCode(BaseUserInfo userInfo, string messageCode); /// <summary>
/// 批量打删除标志
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="ids">主键数组</param>
/// <returns>影响行数</returns>
[OperationContract]
int SetDeleted(BaseUserInfo userInfo, string[] ids); /// <summary>
/// 批量保存
/// </summary>
/// <param name="userInfo">用户</param>
/// <param name="list">列表</param>
/// <returns>影响行数</returns>
[OperationContract]
int BatchSave(BaseUserInfo userInfo, List<BaseLanguageEntity> list);
}
}
C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 基于数据库资源的多语言实现的更多相关文章
- C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 面向数据库SQL语句的应用开发二
很多传统企业.包括系统集成类的IT企业,若不是从事专业软件开发领域的,能做出一套适合本公司企业信息化的灵活的信息系统还是很有难度的,还有一些已经多年不写程序的资深开发人员,初学者,都难把一个整套系统实 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 – 员工离职管理
C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 – 员工离职管理 当公司有几万人,上千家加盟网点,几个庞大的直属分公司后,系统账户的有效管理也是一个头疼的问题,把所有的帐户及时进行科学 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 适合大型企业信息化应用使用的角色权限管理体系
每个人外表看看都没什么大区别.但是内在的知识.处理问题的能力.解决问题的能力.头脑灵活性都会有很大的差距.软件组件也是一样,有些组件编写厉害,想问题深入,能处理的难题也多,构思巧妙. 通用快速开发平台 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 几十套业务系统集中统一授权管理实现经验分享
由于这几年互联网电商的快速发展,快递公司也进入了快速发展的绝好快速成长期.随着社会的强劲需求公司的业绩年年攀新高.快速发展的公司都需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决
作为一个完整的整体信息化解决方案需要有足够强大的各种功能,这些功能相对独立,又互相依存.当有需要这样的功能时可以随时拿出来用,适当修改一下就可以满足要求.只有这样才能快速开发各种信息化系统,才能满足各 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 面向全国标准省市县行政数据基础之上的组织机构管理
由于信息系统庞大.各种业务子系统.各种开发语言开发的业务逻辑.各种年代维护的代码.各种参差不齐的历史遗留信息系统,面向全国的业务系统,面向某个领域的汽运管理信息系统,面向内部的业务系统,面向外部的各种 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.1 版本 - 如何才能成为全国知名软件组件
往往我们看到一个好用的工具.就能知道制作这个工具有多少不容易,使用好这个工具也有多少不容易? 通用快速开发框架同样也是经过多年的完善改进才到了今天的稳定成熟度,知名程度,为什么能成为全国有名的软件组件 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 防止暴力破解密码、提高大型信息系统安全
几十万人使用的系统.覆盖全国.每天营业额上好几个亿的.若信息安全方面太薄弱了.那将会是致命的打击.甚至威胁到企业的正常运转.从国家层面到企业级别大家都在重视信息的安全.可控. 运行速度慢一点点可以忍受 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 外部服务调用、内部服务调用优化,面向服务化的
现在的信息系统越来越复杂,越来越庞大,不仅需要内部是一个整体,而且还需要提供很多对外的服务调用. 1:别人如何调用最方便?用不同的开发语言调用.例如app.手持设备.服务器.2:服务的返回状态是什么样 ...
随机推荐
- Yii2:避免文件路径暴漏,代理访问文件
制作背景:公司要做第三方文件管理系统,客户有时候需要直接访问文件,但是我们又不想暴露文件路径,才有这代理访问 基本功能介绍:读取txt文档.读取图片,如果有需要,可以通过插件读取doc.pdf文档, ...
- MongoDb gridfs-ngnix文件存储方案
在各类系统应用服务端开发中,我们经常会遇到文件存储的问题. 常见的磁盘文件系统,DBMS传统文件流存储.今天我们看一下基于NoSQL数据库MongoDb的存储方案.笔者环境 以CentOS ...
- Jq基础简介
jQuery就是用原生js写出的框架集(Write less do more ) 1.需要注意的问题?(1).jQuery语法需要重新学习(2).jQuery需要注意版本之间的兼容性 (3)不是越新的 ...
- RegExp类型exec()方法的返回值说明
之前看别人写的插件经常会用到RegExp对象来验证输入,并且获取一些那时我并不晓得是什么东西的数组,来取值进行自定义的逻辑处理.今天学习了一下RegExp类型.终于有了一个初步的了解,至少不会看一会就 ...
- SharePoint 2013 自定义扩展菜单(二)
接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomA ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q99-Q101)
Question 99 You have designed a new SharePoint 2010 Web Part that was deployed to the testing envir ...
- Android—自定义控件实现ListView下拉刷新
这篇博客为大家介绍一个android常见的功能——ListView下拉刷新(参考自他人博客,网址忘记了,阅读他的代码自己理解注释的,希望能帮助到大家): 首先下拉未松手时候手机显示这样的界面: 下面的 ...
- iOS 根据银行卡号判断银行名称
如何根据银行卡号判断银行名称? + (NSString *)getBankName:(NSString*) cardId{ //"发卡行.卡种名称", NSArray* bankN ...
- Linq专题之提高编码效率—— 第三篇 你需要知道的枚举类
众所周知,如果一个类可以被枚举,那么这个类必须要实现IEnumerable接口,而恰恰我们所有的linq都是一个继承自IEnumerable接口的匿名类, 那么问题就来了,IEnumerable使了 ...
- 《java JDK7 学习笔记》之继承与多态
1.面向对象中,子类继承父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承.应该正确判断使用继承的时机及继承之后灵活的运用多态,才是学习继承时的重点. 2.程序代码重复在程序设计上,就是 ...