WPF国际化的最佳实践

news2024/11/23 6:20:44

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.coloradmin.cn/o/1794600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go 1.19.4 切片与子切片-Day 05

1. 切片 1.1 介绍 切片在Go中是一个引用类型&#xff0c;它包含三个组成部分&#xff1a;指向底层数组的指针&#xff08;pointer&#xff09;、切片的长度&#xff08;length&#xff09;以及切片的容量&#xff08;capacity&#xff09;&#xff0c;这些信息共同构成了切片的…

el-input添加clearable属性 输入内容时会直接撑开

<el-inputclearablev-if"item.type number || item.type text":type"item.type":placeholder"item.placeholder":prefix-icon"item.icon || "v-model.trim"searchform[item.prop]"></el-input>解决方案 添加c…

inflight 守恒拥塞控制的稳定性

只要系统形成 E_best max(bw / delay) 共识&#xff0c;系统就是稳定的。 设两条流 f1&#xff0c;f2 共享瓶颈链路&#xff0c;用 cwnd 约束 inflight&#xff0c;其 cwnd 分别为 x&#xff0c;y&#xff0c;用简单的微分方程建模&#xff1a; d x d t c − b ∗ x − a ∗…

TCP/IP(网络编程)

一、网络每一层的作用 &#xff0a;网络接口层和物理层的作用&#xff1a;屏蔽硬件的差异&#xff0c;通过底层的驱动&#xff0c;会提供统一的接口&#xff0c;供网络层使用 &#xff0a;网络层的作用&#xff1a;实现端到端的传输 &#xff0a;传输层:数据应该交给哪一个任…

区块链(Blockchain)调查研究

文章目录 1. 区块链是什么&#xff1f;2. 区块链分类和特点3. 区块链核心关键技术3.1 共识机制3.2 密码学技术3.4 分布式存储3.5 智能合约 4. 区块链未来发展趋势5. 区块链 Java 实现小案例 1. 区块链是什么&#xff1f; 区块链是分布式数据存储、点对点传输、共识机制、加密算…

TPC-H建表语句(MySQL语法)

TPC-H测试集介绍 TPC-H&#xff08;Transaction Processing Performance Council, Standard Specification, Decision Support Benchmark, 简称TPC-H&#xff09;是一个非常权威数据库基准测试程序&#xff0c;由TPC组织制定。 TPC-H定义了一个包含8个表的模式&#xff08;Sc…

Github上一款开源、简洁、强大的任务管理工具:Condution

Condution 是一款开源任务管理工具&#xff0c;它以简洁易用、功能强大著称。它旨在为用户提供一个简单高效的平台&#xff0c;帮助他们管理日常任务、提高工作效率。 1. Condution 的诞生背景 现如今&#xff0c;市面上存在着许多任务管理软件&#xff0c;但它们往往价格昂贵…

芒果YOLOv8改进169:即插即用 | 秩引导的块设计核心CIB结构,设计一种秩引导的块设计方案,旨在通过紧凑型架构设计减少被显示为冗余的阶段的复杂性

💡🚀🚀🚀本博客 秩引导的块设计,设计了一种秩引导的块设计方案,旨在通过紧凑型架构设计减少被显示为冗余的阶段的复杂性 :内含源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 文章目录 即插即用|秩引导的块设计|最新改进 YOLOv8 代码改进论文理论YOLO…

山洪灾害监测预警系统守护生命安全的新利器

一、概述 我国地域辽阔&#xff0c;地形地貌条件复杂且气候类型多样&#xff0c;每年5—9月为山洪灾害多发期&#xff0c;6—8月主汛期山洪及次生地质灾害更为集中。由于地理位置、气候条件、地貌特征、社会经济发展水平等成灾环境的不同&#xff0c;山洪灾害在发生时间、空间和…

Mixly UDP局域网收发数据

一、开发环境 软件&#xff1a;Mixly 2.0在线版 硬件&#xff1a;ESP32-C3&#xff08;立创实战派&#xff09; 固件&#xff1a;ESP32C3 Generic(UART) 测试工具&#xff1a;NetAssist V5.0.1 二、实现功能 ESP32作为wifi sta连接到路由器&#xff0c;连接成功之后将路由器…

仅49天!中科院2区SCI,发文量超2W,征稿范围广!

【欧亚科睿学术】 &#xff08;一&#xff09;期刊简介概况 【出版社】SPRINGER出版社 【期刊概况】IF&#xff1a;4.0-5.0&#xff0c;JCR2区&#xff0c;中科院2区 【版面类型】正刊&#xff0c;仅10篇版面 【预警情况】2020-2024年无预警记录 【收录年份】2008年被WOS…

【git】TortoiseGitPlink Fatal Error 解决方法

背景 使用 TortoiseGit报错&#xff1a; TortoiseGitPlink Fatal Error No supported authentication methods available (server sent: publickey) 解决方法 1、有很多是重置git的秘钥解决的 2、重置ssh工具

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第8章——可微性

第2 部分&#xff1a;数学分析中的基本概念 (Concepts in Analysis) 8. 可微性(Differentiability) 本章讨论梯度(gradients)/斜率(slopes)和切线(tangent)&#xff0c;指出常见的误解并解释如何避免这些误解。将可微性的定义与图形表示联系起来&#xff0c;展示如何将其应用…

[leetcode hot 150]第一百三十七题,只出现一次的数字Ⅱ

题目&#xff1a; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 由于需要常数级空间和线性时间复杂度…

论文Compiler Technologies in Deep Learning Co-Design: A Survey分享

目录 标题摘要引言背景深度学习软件和硬件的发展不同时期的协同设计深度学习协同设计系统神经网络架构设计和优化协同设计技术 用于协同设计的深度学习系统中的编译技术深度学习编译器TVM 生态系统和MLIR生态系统IR转换和优化代码生成运行时和执行模式 Buddy-Compiler: 一个针对…

[C++]基于C++opencv结合vibe和sort tracker实现高空抛物实时检测

【vibe算法介绍】 ViBe算法是一种高效的像素级视频背景建模和前景检测算法。以下是对该算法的详细介绍&#xff1a; 一、算法原理 ViBe算法的核心思想是通过为每个像素点存储一个样本集&#xff0c;利用该样本集与当前像素值进行比较&#xff0c;从而判断该像素是否属于背景…

问题:合规电动自行车国家标准是() #学习方法#媒体#经验分享

问题&#xff1a;合规电动自行车国家标准是&#xff08;&#xff09; A&#xff0e;必须有脚踏能实现人力骑行 B&#xff0e;最高设计车速不大于25km/h C&#xff0e;整车质量不大于55kg D&#xff0e;电机输出功率不大于240w 参考答案如图所示

【Python报错】已解决ModuleNotFoundError: No module named ‘timm’

成功解决“ModuleNotFoundError: No module named ‘timm’”错误的全面指南 一、引言 在Python编程中&#xff0c;经常会遇到各种导入模块的错误&#xff0c;其中“ModuleNotFoundError: No module named ‘timm’”就是一个典型的例子。这个错误意味着你的Python环境中没有安…

Windows系统中不同Java版本共存

Windows系统中不同Java版本共存的方法 在Windows系统中&#xff0c;有时我们需要同时运行多个Java应用&#xff0c;而这些应用可能依赖于不同版本的Java Development Kit (JDK) 或 Java Runtime Environment (JRE)。为了实现这种需求&#xff0c;我们需要在Windows中配置多个J…

『 Linux 』内存管理与文件系统

文章目录 交换分区页与页框(页帧)交换分区与内存之间的交换操作系统如何管理内存物理地址转换页号与页内偏移量 内存管理,文件系统与文件管理之间的联系 交换分区 在Linux的安装过程中,用户将会被提示创建一个交换分区; 这是一个特殊的分区,其大小可以由用户根据系统内存需求和…