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);}
}

 

转载于:https://www.cnblogs.com/jirigala/p/4300580.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机投屏不是全屏怎么办_手机投屏怎么满屏

手机投屏是很多小伙伴们都喜欢玩的&#xff0c;不少小伙伴们小伙伴们在使用手机投屏的时候发现不能满屏&#xff0c;想要知道方法的小伙伴们&#xff0c;就让小编给大家详细的讲讲满屏方法吧。手机投屏怎么满屏1、手机具有投屏的功能。目前大多数手机都已经具备发无线投屏的功能…

android开发ui插件下载,TKUISDK-ANDROID

更新记录4.3.4(2021-04-29)1、修改请求权限在进入教室后 需删除之前版本的请求权限代码,并添加 权限请求回调代码 详见文档进入教室 2.4.1.12 新增旁听生身份3 新增大班课红包功能4 修复已知bug4.3.0(2021-04-01)1、一对一教室pad端“视频居左/居右”可拖拽改变课件区、视频区比…

C语言第一节 C语言程序与开发工具

开发工具的选择 可以用来写代码的工具&#xff1a;记事本、UltraEdit、Vim、Xcode等 选择Xcode的原因&#xff1a;苹果官方提供的开发利器、简化开发过程、有高亮显示功能 使用Xcode新建一个C程序的源代码文件&#xff08;拓展名为.c或者.C&#xff09; 打开Xcode 新建文件 选择…

android 关机闹钟 实现,安卓关机闹钟:你所不知道的关机闹钟的背后

可以通过其他方式实现关机闹钟事实上大家也大可不必抱怨Android手机或者是iPhone的固执做法&#xff0c;因为目前在Android手机当中&#xff0c;全新的“明”系列摩托罗拉A1680就已经支持关机闹钟了&#xff0c;这就更加说明了该功能和系统无关。而苹果iPhone也可以通过一些非常…

flux读取不到数据_初学flux的疑问?无法添加数据到DOM

我初学flux,照着网上的代码&#xff0c;尝试学习写了一个简单的添加数据表页面&#xff0c;如图&#xff1a;我想实现的功能是在下方表单填写数据之后点击提交可以实时的在上方表格添加一条数据&#xff0c;现在碰到的问题是我点击提交毫无反应也没有报错。我的架构是这个样子的…

列表视图

列表视图 分类&#xff1a; SharePoint入门2014-10-14 00:10 298人阅读 评论(0) 收藏 举报SharePointlist view使用View&#xff0c;可以按照特定的要求和条件展示List/Library里面的条目。View可以做一下设定来显示数据&#xff1a; 1. 显示哪些属性(column) 2. 属性…

android 线程 界面,android开发教程之子线程中更新界面

每个Handler对象与创建它的线程相关联&#xff0c;并且每个Handler对象只能与一个线程相关联。Handler一般有两种用途&#xff1a;1)执行计划任务&#xff0c;你可以再预定的实现执行某些任务&#xff0c;可以模拟定时器。2)线程间通信。在Android的应用启动时&#xff0c;会创…

vue怎么让接口带上cookie_在Vue中如何使用Cookie操作实例

大家好&#xff0c;由于公司忙着赶项目&#xff0c;导致有段时间没有发布新文章了。今天我想跟大家谈谈Cookie的使用。同样&#xff0c;这个Cookie的使用方法是我从公司的项目中抽出来的&#xff0c;为了能让大家看懂&#xff0c;我会尽量写详细点。废话少说&#xff0c;我们直…

python 简历处理_按照这个方式学Python,老板把垃圾桶里的简历舔回来:月薪50000...

对于Python相信很多人都不陌生&#xff0c;相较于Excel、Tableau、PowerBI等普通的数据分析工具来说&#xff0c;Python的优势显然要大很多。Python有很多优点&#xff0c;如果你能很好的运用到工作中&#xff0c;会发现工作效率大大提升&#xff0c;涨薪也是再正常不过的事情。…

鸿蒙系统下载 绿色,PGWARE PcMedik

pcmedik&#xff0c;一款可以优化你的电脑&#xff0c;让pc发挥更大的性能&#xff0c;大大减少死机的事件。pcmedik操作简单&#xff0c;其优化过程只需三个步骤&#xff1a;①选择一个本机当前正在使用的操作系统。②选择本机使用的cpu类型。③点击&#xff3b;优化&#xff…

attr和prop区别

今天写了个小程序&#xff0c;获取input[checked]属性&#xff0c;$(#check1).attr(checked)&#xff0c;结果返回undefined&#xff0c;查询了一番&#xff0c; 如果是具有true和false两个属性值的属性 如checked selected 或者disabled获取该属性值要用prop()返回boolean值&a…

html5视频抓取,js和HTML5基于过滤器从摄像头中捕获视频的方法

这篇文章主要介绍了jsHTML5基于过滤器从摄像头中捕获视频的方法,涉及javascript基于html5元素操作多媒体的使用技巧,需要的朋友可以参考下本文实例讲述了jsHTML5基于过滤器从摄像头中捕获视频的方法。分享给大家供大家参考。具体如下&#xff1a;index.html页面&#xff1a;Nat…

Android Audio Play Out Channel

1: 7嘴8舌 扬声器, 耳机, 和听筒 就是通过: audiomanager.setmode(AudioManager.MODE_IN_COMMUNICATION)audiomanager.setSpeakerhponeOn(boolean value).这两个来设置.不过有的好像不支持的. 米手机上切换 扬声器和听筒不能切换 Android AudioTrack音频播放分析 音频资源在播…

c html转换成word,C#实现HTML转WORD及WORD转PDF的方法

本文实例讲述了C#实现HTML转WORD及WORD转PDF的方法。分享给大家供大家参考。具体如下&#xff1a;功能&#xff1a;实现HTML转WORD&#xff0c;WORD转PDF具体代码如下&#xff1a;using System;using System.Collections.Generic;using System.ComponentModel;using System.Dat…

bootstrap下拉框分页_【Bootstrap】 bootstrap-select2下拉菜单插件

这次开发了个小TRS系统&#xff0c;虽然是很小&#xff0c;但是作为初心者&#xff0c;第一次用到了很多看起来洋气使用起来有相对简单的各种前端(主要是和bootstrap配合使用)组件。包括bootstrap-select2&#xff0c;bootstrap-datetimepicker&#xff0c;bootstrap-fileinput…

Java-eclipse快捷键及设置

CtrlD: 删除当前行 CtrlAlt↓ 复制当前行到下一行(复制增加) CtrlAlt↑ 复制当前行到上一行(复制增加) Alt↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt↑ 当前行和上面一行交互位置(同上) Alt← 前一个编辑的页面 Alt→ 下一个编辑的页面(当然是针对上…

html 网页主题设置吗,如何使用css样式对html页面进行背景设置呢?

摘要:下文讲述css样式对html页面的背景色、背景图片进行相关设置的方法分享&#xff0c;如下所示:在html中&#xff0c;定义元素的背景信息&#xff0c;可以采用以下css属性&#xff0c;如下所示:css属性功能background在此属性中,我们将所有的背景设置都放入此属性值中backgro…

redis 缓存 @class: 会有 $hibernateproxy_微信亿级在线点赞系统,用Redis如何实现?

点赞功能大家都不会陌生&#xff0c;像微信这样的社交产品中都有&#xff0c;但别看功能小&#xff0c;想要做好需要考虑的东西还挺多的&#xff0c;如海量数据的分布式存储、分布式缓存、多 IDC 的数据一致性、访问路由到机房的算法等等。图片来 Pexels本文介绍大型社交平台点…

Xcode怎样调整模拟器大小

快捷键&#xff1a; Command 1&#xff1a;显示100%大小 Command 2&#xff1a;显示50%大小&#xff08;默认&#xff09;转载于:https://www.cnblogs.com/xiaofeng6636/p/4311753.html

查询hive表_大数据中Hive与HBase的区别与联系

二者区别Hive&#xff1a;Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的sql查询功能。Hive本身不存储和计算数据&#xff0c;它完全依赖于HDFS和MapReduce&#xff0c;Hive中的表纯逻辑。hive需要用到hdfs…