当前位置: 首页 > news >正文

提供一个c# winform的多语言框架源码,采用json格式作为语言包,使用简单易于管理加载且不卡UI,支持“语言分级”管理

提供一个c# winform的多语言框架源码,采用json格式作为语言包,不使用resx资源,当然本质一样的,你也可以改为resx

一、先看下测试界面

演示了基本的功能:切换语言,如何加载语言,如何分级加载语言

二、看下测试界面的代码

如上图所示,代码编写步骤:
1.依赖注入载入语言管理器

        private readonly ILanguageManager _languageManager;public MainForm(ILanguageManager languageManager){_languageManager = languageManager;InitializeComponent();languageManager.LanguageChanged += (s, e) => Localize();}


2.加入语言变更事件

        private readonly ILanguageManager _languageManager;public MainForm(ILanguageManager languageManager){_languageManager = languageManager;InitializeComponent();languageManager.LanguageChanged += (s, e) => Localize();}private void Localize(){ButtonChangeLanguage.Text = _languageManager.CurrentLanguage["Buttons.ButtonMount"];FrmCallRepairText.Text = _languageManager.CurrentLanguage["Labels.mazhiyuan"];//测试多级if (PauseButton.Text == _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Pause"]){PauseButton.Text = _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Resume"];}else{PauseButton.Text = _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Pause"];}}

是的,就是这么简单易用。

三、语言包的制定

如图所示,语言包文件默认是自动读取“Languages"中所有.json文件。
当然,您可以在初始化的时候改变这个配置。代码在如下图的地方修改

四、关于.json文件 的内容

如上图,以简体中文zh-CN.json为例子:
LanguageName:语言名称
LanguageCode:语言唯一编码
Order:排序,类型是float,支持小数点。值越小,就排在越前面
Default:是否默认,当为true的时候,那么打开winform程序,就自动使用这个配置的语言包
Translations:语言翻译。特色是支持多级分类 ,这样有助于你按层级结构进行语言整理。访问的时候,使用小数点进行间隔,如下图所示:

五、核心接口

ILanguageManager是核心接口,所有访问均从此入口进去。
具体接口内容,请看截图。

具体的代码实现就不多说了。提供了源码,请自行下载。

如上图,源码位置在Xejen.Common目录下。


源码下载:
https://gitee.com/mazhiyuan1981/xejen-open.git

祝您用餐愉快。

相关文章:

提供一个c# winform的多语言框架源码,采用json格式作为语言包,使用简单易于管理加载且不卡UI,支持“语言分级”管理

提供一个c# winform的多语言框架源码,采用json格式作为语言包,不使用resx资源,当然本质一样的,你也可以改为resx 一、先看下测试界面 演示了基本的功能:切换语言,如何加载语言,如何分级加载语…...

Docker常见命令

创建并运行容器 例子:docker安装运行mysql docker run -d \ --name mysql \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORDroot \ -v /root/data/mysql/data:/var/lib/mysql \ -v /root/data/mysql/init:/docker-entrypoint-initdb.d \ -v /root/d…...

中科大6系+先研院+中南大学电子信息学院2023年保研经历

中科大6系 英语口语问题: What’s your research plan?Please introduce your project. 专业课问题: BPSK和QPSK每个字母代表的含义?QAM的星座图是什么样的?根据什么准则画成那个样子? 中科大先研院 …...

分布式理论--BASE

目录 是什么BASE 与 CAP,ACID 的区别BASE 和 Paxos 类共识算法的区别相关问题 是什么 BASE 理论是对 CAP 理论的进一步扩展主要强调在分布式系统中,为了获得更高的可用性和性能,可以放宽对一致性的要求,是对 CAP 中 AP 方案的一个…...

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...

正则表达式及其应用

demo1: package 正则表达式;public class demo1 {public static void main(String[] args) {//只能是a b cSystem.out.println("a".matches("[abc]"));//true//前后校验字符个数需要一致System.out.println("ab".matches("[abc]"));/…...

VUE面试题(3)--vue常见面试题

1.vue优点 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 …...

2024.05.24|生信早报【AI测试版】

植物再生领域重大突破 山农大团队发现植物“再生指挥官”REF1:中国科学院院士种康高度评价,认为这一发现对细胞分化与再生领域的基础科学研究和生物技术应用具有重大意义。 生物医药专业园区建设\n- 卫光生命科学园聚焦合成生物学、脑科学&#xff1a…...

计算机毕业设计 | springboot药品库存追踪与管理系统 药店管理(附源码)

1,绪论 1.1 背景调研 如今药品调价频繁,且品种繁多,增加了药品销售定价的难度。药品来货验收登记中的审查有效期环节容易出错,错收过期或有效期不足的药品。 手工模式下的药品库存难以及时掌握,虽然采取了每日进行缺…...

Flink 对接 Hudi 查询数据,java代码编写

1.pom.xml文件需要引入下面包 <properties><flink.version>1.15.4</flink.version><hudi.version>0.13.1</hudi.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><artifa…...

计算机操作系统总结(1)

1操作系统的概念&#xff08;定义&#xff09;功能和目标 (1)什么是操作系统&#xff1f; &#xff08;2&#xff09;操作系统的功能和目标—作为系统资源的管理者 &#xff08;3&#xff09;操作系统的功能和目标—向上层提供方便易用的服务 &#xff08;4&#xff09;操作系…...

HTML5好看的通用网站模板源码

文章目录 1.设计来源1.1 主界面1.2 模板菜单1 界面1.3 模板菜单2 界面1.4 模板菜单3 界面1.5 下拉菜单1 界面1.6 下拉菜单2 界面1.7 模板菜单4 界面1.8 模板菜单5 界面1.9 界面底部 2.效果和源码2.1 动态效果2.2 源码目录2.3 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址…...

AWS安全性身份和合规性之Inspector

Amazon Inspector 是一项漏洞管理服务&#xff0c;可持续扫描您的 AWS 工作负载&#xff0c;以查找软件漏洞和意外网络泄露。Amazon Inspector 会自动发现和扫描正在运行的亚马逊 EC2 实例、亚马逊弹性容器注册表 (Amazon ECR) Container Registry 中的容器映像&#xff0c;以及…...

mybatis plus 配置多数据源(数据源进行切换)

多数据源(数据源进行切换) AbstractRoutingDataSource 根据用户定义的规则选择当前的数据源&#xff0c;这样我们可以在执行查询之前&#xff0c;设置使用的数据源。实现可动态路由的数据源&#xff0c;在每次数据库查询操作前执行。它的抽象方法 determineCurrentLookupKey()…...

Docker-Android安卓模拟器本地部署并实现远程开发测试

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器&#xff0c;并结合cpolar内网穿透工具实现公网远程访问本地…...

vue-封装上下(垂直方向)轮播

需求&#xff1a;没有找到特别好的上下轮播插件-所以自己写了一个简单的demo 一.上下平滑轮播-移入停止-移出继续轮播 <!--* 消息滚动 --> <template><div class"news"><div id"roll" class"InfoBox" mouseover"thi…...

海外私人IP和原生IP有什么区别,谁更有优势?

一、什么是海外私人IP&#xff1f;什么是原生IP&#xff1f; 1、海外私人IP&#xff1a; 海外私人IP是由专门的服务提供商提供的IP地址&#xff0c;这些IP地址通常与特定地理位置或国家相关联。这些IP地址独享私人而不用与其他用户共享。海外私人IP广泛应用与跨境电商中&#x…...

主流容器工具对比以及重点推荐学习的企业级工具

常见的主流容器工具包括但不限于以下几种&#xff1a; 1. Docker&#xff1a; Docker 是最流行的容器平台之一&#xff0c;它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中&#xff0c;然后可以在任何支持Docker的系统上运行。 2. Kubernetes&#xff1a;Kubern…...

国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线编辑word文件,同时保存数据和文件

PageOffice 国产版 &#xff1a;支持信创系统&#xff0c;支持银河麒麟V10和统信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飞腾、鲲鹏、麒麟等&#xff09;芯片架构。 在OA办公、文档流转等各个Web系统中&#xff0c;实现最简单的…...

个人感觉对Material设计有用的几个网址

(一) Modular and customizable Material Design UI components for Android GIthub: material-components-android (二) 学习Material设计 Material Design (三) 用于创建Material主题&#xff0c;支持导出多种格式 material-theme-builder...

MySQL函数及条件查询相关用法

文章目录 前言 一、函数&#xff08;可跳过&#xff09; 1.字符串函数 2.数值函数 3.日期和时间函数 4.聚合函数&#xff08;常用&#xff09; 5.控制流函数 6.加密和压缩函数 7.系统信息函数 二、条件查询&#xff08;select&#xff09; 1.筛选条件子句where与hav…...

统计数据时,sql执行超时,如何处理

在工作中&#xff0c;除了开发&#xff0c;有时还需要做一些数据统计。 统计数据时&#xff0c;sql执行超时。 可以通过以下手段处理。 一、优化sql 首先&#xff0c;通过 EXPLAIN 查看执行计划&#xff0c;看有没有走索引&#xff0c;能加索引的加索引&#xff0c;没有走索引…...

多模态探索:OpenClaw+Qwen3-4B分析截图中的文字与图表数据

多模态探索&#xff1a;OpenClawQwen3-4B分析截图中的文字与图表数据 1. 为什么需要自动化处理截图数据 作为一名经常需要处理学术论文的研究者&#xff0c;我长期被一个问题困扰&#xff1a;当阅读PDF论文时&#xff0c;遇到有价值的图表数据&#xff0c;传统方法只能手动录…...

告别“玩具AI”:联楷国际以商业大模型重塑本地生活,开启一人AI公司时代

在AI浪潮席卷全球的今天&#xff0c;一个尖锐的问题摆在无数中小企业主面前&#xff1a;当ChatGPT们成为茶余饭后的谈资&#xff0c;当各种AI绘画、AI聊天工具令人眼花缭乱时&#xff0c;真正能为我降本增效、解决实际经营痛点的AI在哪里&#xff1f; 喧嚣的“娱乐化AI”噱头之…...

Zotero CitationCounts:学术引用追踪与文献影响力分析的高效工具

Zotero CitationCounts&#xff1a;学术引用追踪与文献影响力分析的高效工具 【免费下载链接】zotero-citationcounts Zotero plugin for auto-fetching citation counts from various sources 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citationcounts Zote…...

SEGGER J-Flash V8.94添加芯片方法

1.打开J-Flash安装路径&#xff08;一般为\SEGGER\JLink_V894&#xff09; 在此路径下新建文件JLinkDevices.xml2.编辑xml文件 <DataBase><Device><ChipInfo Vendor"Renergy" /*厂家*/Name"RN8213B_SOC_V2" /*芯片型号*/WorkRAMAddr&q…...

Make:目标(Target)构建的详细和依赖项的处理过程(个人总结)

相关文章 Make专栏https://blog.csdn.net/weixin_45791458/category_12383799.html 这段时间在用makefile&#xff0c;所以自己探究了一下make的工作过程&#xff0c;并经过实验总结了一些规律。 对于一个规则的处理如下&#xff0c;首先make会检查规则中的目标文件是否存在和…...

本地化AI字幕解决方案:Qwen3-ForcedAligner支持多格式音频

本地化AI字幕解决方案&#xff1a;Qwen3-ForcedAligner支持多格式音频 1. 引言&#xff1a;本地化字幕生成的新选择 在视频内容创作和多媒体处理领域&#xff0c;字幕生成一直是个耗时费力的工作。传统手动添加字幕不仅效率低下&#xff0c;时间轴对齐的精度也难以保证。Qwen…...

Dell R730服务器iDRAC远程安装操作系统的完整指南

1. Dell R730服务器iDRAC远程安装操作系统全流程 第一次接触iDRAC远程管理功能时&#xff0c;我完全被它的便捷性震惊了。想象一下&#xff0c;你躺在家里沙发上&#xff0c;用笔记本就能完成机房服务器的系统安装&#xff0c;这种体验简直不要太爽。Dell R730作为经典的2U机架…...

探索法律AI深度应用:在快马平台集成多模型驱动openlaw智能法律问答助手

最近在做一个法律AI相关的项目&#xff0c;发现用AI辅助开发法律问答系统真的能大幅提升效率。这里分享一下我在InsCode(快马)平台上搭建智能法律问答原型的经验&#xff0c;整个过程特别适合想尝试法律科技的朋友。 项目背景与需求分析 法律咨询场景中&#xff0c;用户的问题往…...