WPF国际化的最佳实践

WPF国际化的最佳实践

1.创建项目资源文件

如果你的项目没有Properties文件夹和Resources.resx文件,可以通过右键项目-资源-常规-添加创建或打开程序集资源
在这里插入图片描述

2.添加国际化字符串

打开Resources.resx文件,添加需要翻译的文本字符,并将访问修饰符修改为public,才能在xaml中访问到此字符

在这里插入图片描述

3.添加其他国家地区资源文件

  • 在Properties文件夹下添加新的资源文件项
  • 注意一定要将新的文件名称格式命名为Resources.xx-xx.resx 这里一定要注意Resources是有s的,很多同事都命名错误导致无法国际化
  • 更多国家和地区的编码见文末

在这里插入图片描述

3.1 翻译文本

  • 将需要翻译的文本复制到新的地区资源文件中翻译

在这里插入图片描述

4.在代码中使用国际化文本

  • 在xaml中使用国际化文本

    <Button Width="40" Content="{x:Static prop:Resources.Confirm}" />
    
  • 引入Properties命名空间

    xmlns:prop="clr-namespace:WpfLanguage.Properties"
    

  • 在代码中使用国际化文本

    label.Content = Properties.Resources.Confirm;
    

5.在程序启动切换到对应国际的资源文件

protected override void OnStartup(StartupEventArgs e)
{

    // 切换到英语资源文件
    var info = new CultureInfo("en-US");
    Thread.CurrentThread.CurrentUICulture = info;

    base.OnStartup(e);
}

在这里插入图片描述

6.常见的国家和地区码

CultureInfo地区
af-ZA南非荷兰语(南非)
sq阿尔巴尼亚语
sq-AL阿尔巴尼亚语(阿尔巴尼亚)
ar阿拉伯语
ar-DZ阿拉伯语(阿尔及利亚)
ar-BH阿拉伯语(巴林)
ar-EG阿拉伯语(埃及)
ar-IQ阿拉伯语(伊拉克)
ar-JO阿拉伯语(约旦)
ar-KW阿拉伯语(科威特)
ar-LB阿拉伯语(黎巴嫩)
ar-LY阿拉伯语(利比亚)
ar-MA阿拉伯语(摩洛哥)
ar-OM阿拉伯语(阿曼)
ar-QA阿拉伯语(卡塔尔)
ar-SA阿拉伯语(沙特阿拉伯)
ar-SY阿拉伯语(叙利亚)
ar-TN阿拉伯语(突尼斯)
ar-AE阿拉伯语(阿联酋)
ar-YE阿拉伯语(也门)
hy亚美尼亚语
hy-AM亚美尼亚语(亚美尼亚)
az阿泽里语
az-Cyrl-AZ阿泽里语(阿塞拜疆,西里尔语)
az-Latn-AZ阿泽里语(阿塞拜疆,拉丁语)
eu巴斯克语
eu-ES巴斯克语(巴斯克地区)
be白俄罗斯语
be-BY白俄罗斯语(白俄罗斯)
bg保加利亚语
bg-BG保加利亚语(保加利亚)
ca加泰罗尼亚语
ca-ES加泰罗尼亚语(加泰罗尼亚地区)
zh-HK中文(中国香港特别行政区)
zh-MO中文(中国澳门特别行政区)
zh-CN中文(中国)
zh-Hans中文(简体)
zh-SG中文(新加坡)
zh-TW中文(台湾)
zh-Hant中文(繁体)
hr克罗地亚语
hr-BA克罗地亚语(波斯尼亚和黑塞哥维那)
hr-HR克罗地亚语(克罗地亚)
cs捷克语
cs-CZ捷克语(捷克共和国)
da丹麦语
da-DK丹麦语(丹麦)
dv迪维希语
dv-MV迪维希语(马尔代夫)
nl荷兰语
nl-BE荷兰语(比利时)
nl-NL荷兰语(荷兰)
en英语
en-AU英语(澳大利亚)
en-BZ英语(伯利兹)
en-CA英语(加拿大)
en-029英语(加勒比)
en-IE英语(爱尔兰)
en-JM英语(牙买加)
en-NZ英语(新西兰)
en-PH英语(菲律宾)
en-ZA英语(南非)
en-TT英语(特立尼达和多巴哥)
en-GB英语(英国)
en-US英语(美国)
en-ZW英语(津巴布韦)
et爱沙尼亚语
et-EE爱沙尼亚语(爱沙尼亚)
fo法罗语
fo-FO法罗语(法罗群岛)
fa波斯语
fa-IR波斯语(伊朗)
fi芬兰语
fi-FI芬兰语(芬兰)
fr法语
fr-BE法语(比利时)
fr-CA法语(加拿大)
fr-FR法语(法国)
fr-LU法语(卢森堡)
fr-MC法语(摩纳哥)
fr-CH法语(瑞士)
gl加利西亚语
gl-ES加利西亚语(西班牙)
ka格鲁吉亚语
ka-GE格鲁吉亚语(格鲁吉亚)
de德语
de-AT德语(奥地利)
de-DE德语(德国)
de-DE_phoneb德语(德国,电话簿排序)
de-LI德语(列支敦士登)
de-LU德语(卢森堡)
de-CH德语(瑞士)
el希腊语
el-GR希腊语(希腊)
gu古吉拉特语
gu-IN古吉拉特语(印度)
he希伯来语
he-IL希伯来语(以色列)
hi印地语
hi-IN印地语(印度)
hu匈牙利语
hu-HU匈牙利语(匈牙利)
is冰岛语
is-IS冰岛语(冰岛)
id印度尼西亚语
id-ID印度尼西亚语(印度尼西亚)
it意大利语
it-IT意大利语(意大利)
it-CH意大利语(瑞士)
ja日语
ja-JP日语(日本)
kn卡纳达语
kn-IN卡纳达语(印度)
kk哈萨克语
kk-KZ哈萨克语(哈萨克斯坦)
kok贡根语
kok-IN贡根语(印度)
ko朝鲜语
ko-KR朝鲜语(韩国)
ky吉尔吉斯语
ky-KG吉尔吉斯语(吉尔吉斯坦)
lv拉脱维亚语
lv-LV拉脱维亚语(拉脱维亚)
lt立陶宛语
lt-LT立陶宛语(立陶宛)
mk马其顿语
mk-MK马其顿语(马其顿,FYROM)
ms马来语
ms-BN马来语(文莱达鲁萨兰)
ms-MY马来语(马来西亚)
mr马拉地语
mr-IN马拉地语(印度)
mn蒙古语
mn-MN蒙古语(蒙古)
没有挪威语
nb-NO挪威语(伯克梅尔,挪威)
nn-NO挪威语(尼诺斯克,挪威)
pl波兰语
pl-PL波兰语(波兰)
pt葡萄牙语
pt-BR葡萄牙语(巴西)
pt-PT葡萄牙语(葡萄牙)
pa旁遮普语
pa-IN旁遮普语(印度)
ro罗马尼亚语
ro-RO罗马尼亚语(罗马尼亚)
ru俄语
ru-RU俄语(俄罗斯)
sa梵语
sa-IN梵语(印度)
sr-Cyrl-CS塞尔维亚语(塞尔维亚,西里尔语)
sr-Latn-CS塞尔维亚语(塞尔维亚,拉丁语)
sk斯洛伐克语
sk-SK斯洛伐克语(斯洛伐克)
sl斯洛文尼亚语
sl-SI斯洛文尼亚语(斯洛文尼亚)
es西班牙语
es-AR西班牙语(阿根廷)
es-BO西班牙语(玻利维亚)
es-CL西班牙语(智利)
es-CO西班牙语(哥伦比亚)
es-CR西班牙语(哥斯达黎加)
es-DO西班牙语(多米尼加共和国)
es-EC西班牙语(厄瓜多尔)
es-SV西班牙语(萨尔瓦多)
es-GT西班牙语(危地马拉)
es-HN西班牙语(洪都拉斯)
es-MX西班牙语(墨西哥)
es-NI西班牙语(尼加拉瓜)
es-PA西班牙语(巴拿马)
es-PY西班牙语(巴拉圭)
es-PE西班牙语(秘鲁)
es-PR西班牙语(波多黎各)
es-ES西班牙语(西班牙)
es-ES_tradnl西班牙语(西班牙,传统排序)
es-UY西班牙语(乌拉圭)
es-VE西班牙语(委内瑞拉)
sw斯瓦希里语
sw-KE斯瓦希里语(肯尼亚)
sv瑞典语
sv-FI瑞典语(芬兰)
sv-SE瑞典语(瑞典)
syr叙利亚语
syr-SY叙利亚语(叙利亚)
ta泰米尔语
ta-IN泰米尔语(印度)
tt鞑靼语
tt-RU鞑靼语(俄罗斯)
te泰卢固语
te-IN泰卢固语(印度)
th泰语
th-TH泰语(泰国)
tr土耳其语
tr-TR土耳其语(土耳其)
uk乌克兰语
uk-UA乌克兰语(乌克兰)
ur乌尔都语
ur-PK乌尔都语(巴基斯坦)
uz乌兹别克语
uz-Cyrl-UZ乌兹别克语(乌兹别克斯坦,西里尔语)
uz-Latn-UZ乌兹别克语(乌兹别克斯坦,拉丁语)
vi越南语
vi-VN越南语(越南)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/687955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入了解 Postman 中的变量

在我们进行 API 开发和测试时&#xff0c;使用诸如 Postman 之类的工具可以极大地简化工作流程&#xff0c;提高效率。Postman 的一个强大功能就是变量&#xff08;Variables&#xff09;。利用变量&#xff0c;我们可以使我们的请求变得更加动态和灵活&#xff0c;避免重复输入…

计算机组成实验---Cache的实现

直接映射 先看懂cache的映射原理&#xff0c;根据cache大小与主存大小来计算各个信号线的位数 各个信号线位数 主存地址在逻辑上分为区号、块号、块内地址 Cache结构 Cache访问原理 基本过程 状态机&#xff1a;“三段式”实现 6.3 Verilog 状态机 | 菜鸟教程 (runoob.com) …

问题:当频点数大于载波数时,() #学习方法#知识分享

问题&#xff1a;当频点数大于载波数时&#xff0c;&#xff08;&#xff09; A.基带跳频可以执行&#xff0c;混合跳频可以执行 B.基带跳频不可以执行&#xff0c;混合跳频可以执行 C.基带跳频可以执行&#xff0c;混合跳频不可以执行 D.基带跳频不可以执行&#xff0c;混…

2024-06-07 Unity 编辑器开发之编辑器拓展8 —— Scene 窗口拓展

文章目录 1 Handles 类1.1 Scene 响应函数1.2 自定义窗口中监听 Scene1.3 Handles 常用 API2.2.1 颜色控制2.2.2 文本2.2.3 线段2.2.4 虚线2.2.5 圆弧2.2.6 圆2.2.7 立方体2.2.8 几何体2.2.9 移动、旋转、缩放2.2.10 自由移动 / 旋转 2 Scene 窗口中显示 GUI3 HandleUtility4 G…

React 18

创建 React 18 脚手架项目 全局安装 create-react-app npm install -g create-react-app yarn global add create-react-app . 确认是否已安装 create-react-app npm list -g create-react-app yarn global list | grep create-react-app . 如果安装失败 有时&#xff0…

YOLOv8---seg实例分割(制作数据集,训练模型,预测结果)

YOLOv8----seg实例分割&#xff08;制作数据集&#xff0c;训练模型&#xff0c;预测结果&#xff09; 内容如下&#xff1a;【需要软件及工具&#xff1a;pycharm、labelme、anaconda、云主机&#xff08;跑训练&#xff09;】 1.制作自己的数据集 2.在yolo的预训练模型的基础…

Linux系统下 安装 Nginx

一、下载Nginx安装包 压缩包下载地址&#xff1a;nginx: download 服务器有外网&#xff0c;可直接使用命令下载 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 二、安装Nginx 1、解压 tar -zxvf nginx-1.24.0.tar.gz 2、安装Nginx所需依赖 yum install -y gc…

顶顶通呼叫中心中间件-asr录音路径修改(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-asr录音路径修改(mod_cti基于FreeSWITCH) 录音路径模板。如果不是绝对路径&#xff0c;会把这个路径追加到FreeSWITCH的recordings后面。支持变量&#xff0c;比如日期 ${strftime(%Y-%m-%d)}。最后一个录音文件路径会保存到变量 ${cti_asr_last_record_…

[职场] 项目实施工程师的工作前景 #笔记#经验分享

项目实施工程师的工作前景 项目实施工程师是负责将软件产品或解决方案实施到客户现场并确保项目成功落地的工作岗位。他们要负责整个项目的规划、组织、执行和控制&#xff0c;确保项目按照预定的进度、质量和预算完成。 一&#xff0e;工作内容 1. 项目规划&#xff1a;确定…

docker部署fastdfs

我的镜像包地址 链接&#xff1a;https://pan.baidu.com/s/1j5E5O1xdyQVfJhsOevXvYg?pwdhcav 提取码&#xff1a;hcav docker load -i gofast.tar.gz拉取gofast docker pull sjqzhang/go-fastdfs启动gofast docker run -d --name fastdfs -p 8080:8080 -v /opt/lijia/lijia…

耐酸碱腐蚀可溶性聚四氟乙烯(PFA)溶样罐

PFA溶样罐也叫PFA溶样瓶&#xff0c;可直接放在加热板上及油浴里加热&#xff0c;也可液氮下长期保存&#xff0c;使用温度-200—260℃。 根据不同实验的需求&#xff0c;PFA溶样罐有U型、V型、平底3种设计。V型底的设计&#xff0c;更加方便少量样品的集中收集。溶样罐广泛用…

Linux-桌面操作系统在服务器上未关闭休眠机制,使其开机半小时左右死机无法远程ssh连接

故障表述 操作系统:ubuntu desktop 18.04 异常描述:开机半小时左右死机 1、登录iBMC查看硬件无异常 2、登录ubuntu desktop 18.04操作系统,导出日志文件syslog、dmesg、lastlog(路径:/var/log),操作系统在11月8号~11月9号之间出现异常 经分析操作系统日志文件,操作系…

项目经理进入职场都会经历的三个阶段

对于项目经理而言&#xff0c;进入职场是一个不断学习和成长的过程。在这个过程中&#xff0c;项目经理通常会经历三个主要阶段&#xff0c;每个阶段都有其独特的特点和挑战。 一、基础建设与学习阶段 对于新入行的项目经理来说&#xff0c;最初的阶段主要是基础技能的积累和…

利用keepalived对zabbix-server做高可用,部署安装keepalived

有2台机器&#xff0c;每台都有1个zabbix-server&#xff0c;然后再每台上再装一个keepalived https://www.keepalived.org/download.html 1&#xff0c;创建安装路径 mkdir /usr/share/keepalived/2&#xff0c;在这个安装路径下面下载keepalived的软件包 我选的版本是1.3…

k8s-pod参数详解

目录 概述创建Pod编写一个简单的Pod添加常用参数为Pod的容器分配资源网络相关Pod健康检查启动探针存活探针就绪探针 作用整个Pod参数配置创建docker-registry 卷挂载 结束 概述 k8s中的pod参数详解。官方文档   版本 k8s 1.27.x 、busybox:stable-musl、nginx:stable-alpine3…

记忆++入门01

1.数字编码 2. 地点桩 1. 卧室 2.婴儿房 3.卫生间 4.次卧 5.书房 6.厨房 7.餐厅 8.客厅 9.阳台左 10.阳台右

ssh远程转发22端口,使用shell工具进行连接|使用服务器地址ssh连接本地ubuntu|端口映射

☆ 问题描述 我在内网主机中&#xff0c;使用docker创建了多个虚拟机&#xff0c;我希望能通过我的公网ip服务器端口进行shell访问 ★ 解决方案 我创建一个新的虚拟机为例 1. 创建并打开容器 docker run -itd --name test ubuntu2. 进入容器 docker exec -it test /bin/b…

先激活还是先插卡?流量卡的激活顺序你知道吗?

拿到流量卡后&#xff0c;先激活还是先插卡吗&#xff1f;你知道是流量卡的激活顺序吗&#xff1f; 在这里&#xff0c;小编提醒大家&#xff0c;拿到卡后先别着急着操作&#xff0c;一定要先看一遍激活流程。 以下为流量卡的激活方法&#xff1a; 如果你是快递激活的话&…

28、pxe自动装机

一、pxe 1.1、pxe自动装机 服务端和客户端 pxe c/s模式&#xff1a;允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像&#xff0c;加装安装文件&#xff0c;实现自动化安装操作系统。 无人值守&#xff1a;无人值守&#xff0c;就是安装选项不需…

将web项目打包成electron桌面端教程(一)vue3+vite+js

说明&#xff1a;后续项目需要web端和桌面端&#xff0c;为了提高开发效率&#xff0c;准备直接将web端的代码打包成桌面端&#xff0c;在此提前记录一下demo打包的过程&#xff0c;需要注意的是vue2或者vue3的打包方式各不同&#xff0c;如果你的项目不是vue3vitejs&#xff0…