WPF程序支持多国语言
最近在做wpf项目时要实现中文和英文的切换,如果做两个语言模板在选择语言时切换,太过于麻烦,可以利用资源字典实现这一功能。
1:首先在WPF项目中添加 en_us.xaml和zh_cn.xaml两个资源文件,
保证资源文件头部有xmlns:s="clr-namespace:System;assembly=mscorlib",里面的键值会加不进去。
2:资源字典完成之后,需要在配置文件中进行配置.
<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary <ResourceDictionary Source="/项目名称;component/Resource/en_us.xaml"/><ResourceDictionary Source="/项目名称;component/Resource/zh_cn.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources>
3:前端界面的内容用"{DynamicResource 键名}"显示,后台内容用FindResource("键名") as string或者App.Current.Resources["键名"] as string显示。
4:语言切换按键事件
private void ChSelect_Click(object sender, RoutedEventArgs e){ List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries){dictionaryList.Add(dictionary);}userLanguage = @"/项目名;component/Resource/zh_cn.xaml";string requestedCulture1 = userLanguage; ResourceDictionary resourceDictionary1 = dictionaryList.FirstOrDefault(d => d.Source.OriginalString.Equals(requestedCulture1)); Application.Current.Resources.MergedDictionaries.Remove(resourceDictionary1);Application.Current.Resources.MergedDictionaries.Add(resourceDictionary1);}private void EnSelect_Click(object sender, RoutedEventArgs e){ List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries){dictionaryList.Add(dictionary);}userLanguage = @"/项目名;component/Resource/en_us.xaml";string requestedCulture2 = userLanguage; ResourceDictionary resourceDictionary2 = dictionaryList.FirstOrDefault(d => d.Source.OriginalString.Equals(requestedCulture2));Application.Current.Resources.MergedDictionaries.Remove(resourceDictionary2);Application.Current.Resources.MergedDictionaries.Add(resourceDictionary2);}
5:如果想要APP上次使用的语言。
在该文件中进行如何配置,
用userLanguage = Properties.Settings.Default.Language;获取保存的语言,当语言进行改变时,用
try
{
Properties.Settings.Default.Language = userLanguage;
Properties.Settings.Default.Save();
}
catch (Exception)
{
}
来保存语言。
WPF程序支持多国语言相关推荐
- c 程序多语言,怎样在程序中利用C支持多国语言
怎样在程序中利用C支持多国语言 本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的 ...
- Make uploadify button text support multiple languages(使uploadify的buttonText支持多国语言)
uploadify 控件的按钮不支持多国语言,这里介绍如何修改后使其支持多国语言. 1.jquery.uploadify.v2.1.4.js文件 70行 原代码:if (settings.button ...
- 字符编码转换类(支持多国语言)
头文件StrConvertor.h /* * 字符编码转换库,支持多国语言. */ #pragma once #include <string>class CStrConvertor { ...
- Qt / Qml 中支持多国语言
[缘起] 最近找到一个看起来比较好用的开源工具( 然鹅不太会用 ),但整个界面都是英文的. 不过由于是 Qt 写的,所以就尝试自己做些汉化. 然后了解到不少实现多国语言相关的技术( 以及一些坑 (‾◡ ...
- Android支持多国语言
1.如何让App支持多国语言的设置? 为了让以后方便代码的管理维护,推荐将一些尺寸,文字等都使用@string/xxx的引用方式. 为了达到目的,我们先需要知道国际中的各国语言和地区语言的简称,如最下 ...
- oracle支持几国语言,Oracle数据库多语言支持
二.使用Unicode在需要支持多国语言的环境里,使用Unicode可以轻松解决数据存储问题. Oracle中支持以下几种Unicode编码?AL32UTF8 使用1,2,3个字节进行编码,扩展字符集 ...
- 柔宇发布“手写神器”柔记樱雪白特别版,支持7国语言手写识别
深圳2018年9月26日电 /美通社/ -- 9月23日,柔宇科技在2018北京国际设计周期间首次对外发布柔宇科技的"柔性+"办公教育类升级新品 -- 柔记 RoWrite S 智 ...
- 高通针对对讲机输入法的字库解决方案 — 支持多国语言字库,多字号字库;...
数字对讲机通信的优势非常明显,以直通模式为例,DMR采用双时隙工作时,其中一个时隙用来通话.发送短信和传送图像,另一个时隙则可用作控制信道使用,这个时隙可对传输的业务进行监视.暂停.遥毙.强插等控制, ...
- iOS中代码支持多国语言切换的实现(Xcode5+iOS7)
时间2014-03-08 22:14:13 CSDN博客 原文 http://blog.csdn.net/gisxy/article/details/20577881 为了增加程序的用户使用数量,那 ...
- oracle支持几国语言,明白ORACLE的多国语言设置
wlgyhnj(冷风0) 明白ORACLE的多国语言设置,ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字 ...
最新文章
- ubuntu搭建nginx环境
- 除了码农,你还想做什么? | 每日趣闻
- 《C语言及程序设计》实践参考——当年第几天
- 001_Layout布局
- Spring Boot Starters启动器
- Excel中配置VBA的工作环境
- 如何查看cplex的help文档_用摹客,写出更好的产品文档
- linux卸载vs codeblocks,哪个适合linux? GNU make vs cmake vs codeblocks vs qmake
- Windows 下的 PHP 编译
- mysql数据与Hadoop之间导入导出之Sqoop实例
- 投行精英接班后,贵人鸟能否再高飞?
- [转载] python查看的统计量_python 描述性统计_Python中的基本统计:描述性统计
- [简单分页]C#+JQUERY+ORACLE分页效果 ----转载
- 处理ajax表单验证结果,使用 jQuery Form 插件完成带数据验证的 Ajax 表单
- 躲开Xilinx官网龟速的下载器
- 有赞 插入html,有赞 前端工程师面试题
- 报告,开启新副本!经典赛强势回归
- Ubuntu apt/apt-get安装sqliteman出现“E: 无法定位软件包”解决方案
- mac忘记mysql用户名和密码_mac 下 忘记mysql密码如何找回
- u盘作为重要的计算机存储介质,U盘是采用FLASH MEMORY作为存储介质的移动存储设备...
热门文章
- JavaScript 基础知识个人总结
- ios版的chrome如何保存网页为PDF
- [嵌入式linux]RTL8111/RTL8168网卡内核驱动安装
- AiChallenger比赛记录之样本不均衡
- vue 滑动置顶功能_CSS3 移动端 滚动置顶 吸顶
- 方法教程 | Python爬虫:爬取某易云数据并且可视化展示
- xrd精修教程_XRD精修教程.pdf
- 信息学奥赛一本通C++语言-----1142:单词的长度
- astrolog32 java,astrolog32 占星软件
- java中新建对象设为null 和new 一个对象的区别