当前位置:   article > 正文

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

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

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

一、先看下测试界面

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

二、看下测试界面的代码

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

  1. private readonly ILanguageManager _languageManager;
  2. public MainForm(ILanguageManager languageManager)
  3. {
  4. _languageManager = languageManager;
  5. InitializeComponent();
  6. languageManager.LanguageChanged += (s, e) => Localize();
  7. }


2.加入语言变更事件

  1. private readonly ILanguageManager _languageManager;
  2. public MainForm(ILanguageManager languageManager)
  3. {
  4. _languageManager = languageManager;
  5. InitializeComponent();
  6. languageManager.LanguageChanged += (s, e) => Localize();
  7. }
  8. private void Localize()
  9. {
  10. ButtonChangeLanguage.Text = _languageManager.CurrentLanguage["Buttons.ButtonMount"];
  11. FrmCallRepairText.Text = _languageManager.CurrentLanguage["Labels.mazhiyuan"];
  12. //测试多级
  13. if (PauseButton.Text == _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Pause"])
  14. {
  15. PauseButton.Text = _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Resume"];
  16. }
  17. else
  18. {
  19. PauseButton.Text = _languageManager.CurrentLanguage["DataSyncRecordsControl.PauseButton.Pause"];
  20. }
  21. }

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

三、语言包的制定

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

四、关于.json文件 的内容

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

五、核心接口

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

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

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


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

祝您用餐愉快。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/612014
推荐阅读
相关标签
  

闽ICP备14008679号