当前位置: 首页 > 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...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...