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

36 篇文章 16 订阅
25 篇文章 33 订阅

提供一个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

祝您用餐愉快。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值