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

WPF多语言国际化,中英文切换

通过切换资源文件的形式实现中英文一键切换

在项目中新建Language文件夹,添加资源字典(xaml文件),中文英文各一个。

在资源字典中写上想中英文切换的字符串,需要注意,必须指定key值,并且中英文的Key值需要一一对应(因为到时候是按照Key值替换的)

在前端使用的时候,就不要用固定的字符串了,而是绑定到动态资源,注意一定是动态资源DynamicResource,如果写成静态资源就不能切换了

DynamicResource后面的值就是在资源文件中定义的Key值

首先要先去app.xaml里设置一下初始的语言

这是加载资源文件的意思,后面的Source写你自己想要初始加载的语言xaml文件的路径

然后中英文切换时,是在后台代码里切换资源文件,比如点击切换语言按钮,调用下面的切换语言方法。

需要注意!!!

需要注意!!!

需要注意!!!重要的事情说三遍!我在上面app.xaml里,还载入了一些其他资源文件,可以看到语言资源文件是第三个,所以在下面切换语言时,是

Application.Current.Resources.MergedDictionaries[2].Source

下标为2,意思是将第三个资源文件(即我们的语言资源文件)替换,在使用时需要根据实际情况进行修改

    /// <summary>/// 语言选项/// </summary>public enum Language{Chinese,English}public Language Language { get; set; }/// <summary>/// 切换语言/// </summary>private void SwitchLanguage(){try{if (Language == Language.Chinese){Language = Language.English;string english = "pack://application:,,,/Language/English.xaml";Application.Current.Resources.MergedDictionaries[2].Source = new Uri(english);}else{Language = Language.Chinese;string chinese = "pack://application:,,,/Language/Chinese.xaml";Application.Current.Resources.MergedDictionaries[2].Source = new Uri(chinese);}}catch (Exception e){//错误处理}}

点击切换语言按钮,调用这个切换语言方法,因为我们页面绑定的是动态的资源,就能发现页面的语言已经实现了切换。

这是界面上直接绑定时的语言切换,有些人可能遇到一些像写日志、弹窗这种没办法动态绑定的情况,那就需要通过后台代码来通过Key值读出资源的字符串了

string text = Application.Current.FindResource("想查找资源的Key值") as String;

这样在是英文资源的时候,返回的字符串就是英文,在是中文资源的时候,字符串就是中文的。

就能实现非页面绑定的中英文切换啦。

博主会不定时更新WPF技术,分享技术代码,感兴趣的小伙伴可以关注一波~

http://www.lryc.cn/news/409797.html

相关文章:

  • Halcon深度学习分类模型
  • 洗地机哪种牌子好?洗地机排行榜前十名公布
  • C++中的虚函数与多态机制如何工作?
  • 《LeetCode热题100》---<哈希三道>
  • 秒懂C++之string类(下)
  • github简单地操作
  • 模型改进-损失函数合集
  • C++模板(初阶)
  • 下面关于Date类的描述错误的一项是?
  • 【Python面试题收录】Python编程基础练习题①(数据类型+函数+文件操作)
  • C# Nmodbus,EasyModbusTCP读写操作
  • spark常用参数调优
  • C#/WinFrom TCP通信+ 网线插拔检测+客服端异常掉线检测
  • 一篇文章掌握Python爬虫的80%
  • 【用户会话信息在异步事件/线程池的传递】
  • Java8: BigDecimal
  • 苹果推送iOS 18.1带来Apple Intelligence预览
  • testRigor-基于人工智能驱动的无代码自动化测试平台
  • hadoop学习(一)
  • Linux性能监控:sar的可视化方案
  • 如何录制电脑屏幕视频,5招让您成为电脑录制高手
  • AI届的新宠:小语言模型(SLM)?
  • PMP模拟题错题本
  • Laravel Dusk:点亮自动化测试的明灯
  • Git、Gitlab以及分支管理
  • TCP/IP 协议栈介绍
  • 香橙派orangepi系统没有apt,也没有apt-get,也没有yum命令,找不到apt、apt-get、yum的Linux系统
  • 在invidia jetpack4.5.1上运行c++版yolov8(tensorRT)
  • Vue3 接入 i18n 实现国际化多语言
  • 深度学习环境坑。