WPF国际化的最佳实践

devtools/2024/10/18 7:54:07/

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越南语(越南)

http://www.ppmy.cn/devtools/48253.html

相关文章

找不到vcruntime140_1.dll无法继续执行的原因解析及解决方法

在现代的信息化社会中&#xff0c;电脑已经成为我们生活和工作中不可或缺的工具之一。然而&#xff0c;在使用过程中&#xff0c;我们可能会遇到一些问题&#xff0c;其中之一就是电脑缺失vcruntime140_1.dll文件。那么&#xff0c;这个问题到底是怎么回事呢&#xff1f;小编将…

Transformer动画讲解:注意力计算Q、K、V

暑期实习基本结束了&#xff0c;校招即将开启。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。提前准备才是完全之策。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c…

一些简单却精妙的算法

文章目录 1.树状数组2.红黑树3.星星打分4.欧几里得算法5.快速幂6.并查集 在编程的世界里&#xff0c;简洁的代码往往隐藏着深邃的智慧。一起来看看那些看似简单&#xff0c;实则精妙绝伦的代码片段&#xff0c;体会编程语言的优雅与力量。 1.树状数组 int lowbit(int x) { …

「前端+鸿蒙」鸿蒙应用开发-TS接口-特殊用途

在 TypeScript 中&#xff0c;接口除了定义对象的结构之外&#xff0c;还有一些特殊用途&#xff0c;这些用途使得接口成为一种灵活的工具&#xff0c;用于提高代码的可维护性和可扩展性。 TS快速入门-接口-特殊用途 1. 定义函数类型 接口可以用来定义函数的类型&#xff0c;…

Macbook Air M1配置双屏或三屏显示-基于Displaylink软件

设备 Dell D3100扩展坞及其配件 &#xff08;海鲜市场扩展坞D3100、Dell 65W电源、B-C数据线 140元左右&#xff09; macbook M1 air 驱动下载 下载displaylink驱动 https://www.synaptics.com/products/displaylink-graphics/downloads/macos App LoginExtension可装可不…

【笔记】深度学习入门

神经网络基础 计算机视觉 1.1 人工智能的本质——线性模型 ykxb k为权重&#xff0c;b为偏置 像素点有323233072个任务点 所以权重有3072个&#xff0c;假设有10组类别&#xff0c;注意权重是一个矩阵 1.2 模型更新方法 权重一开始是随机的 权重和损失值&#xff0c;尝试…

【个人博客搭建】(23)购买服务器、域名、备案

1、服务器主要是为了有一个公网的IP地址&#xff0c;方便我们可以通过网络随时访问 2、域名是对IP地址的一个替代。简单说IP地址可能不方便记忆&#xff0c;但是自己配置的域名会简单些&#xff0c;另外暴露IP地址也不安全。(虽然也能通过域名找到IP) 3、备案。这是政策。简单所…

python之语法糖

一.语法糖 语法糖不是糖,而是编程语言中的某些特殊写法,这些写法让书写起来更加简洁,容易理解,因此被叫做语法糖 二.语法糖分类 数字分隔符 a 10_0000_0000交换变量值 a 1;b 2 a,b b,a连续比较式 a 90 if 80<a<100: print(‘优秀’)字符串乘法 a ‘_’*10列表拼…