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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java版B/S架构UWB人员定位系统源码spring boot+vue技术架构uwb定位装置-工业级UWB室内定位系统源码

java版B/S架构UWB人员定位系统源码spring bootvue技术架构uwb定位装置-工业级UWB室内定位系统源码 本套系统运用UWB定位技术&#xff0c;开发的高精度人员定位系统&#xff0c;通过独特的射频处理&#xff0c;配合先进的位置算法&#xff0c;可以有效计算复杂环境下的人员与物…

怎么避免电脑磁盘数据泄露?磁盘数据保护方法介绍

电脑磁盘是电脑存储数据的基础&#xff0c;而为了避免磁盘数据泄露&#xff0c;我们需要保护电脑磁盘。下面我们就来了解一下磁盘数据保护的方法。 磁盘加密 磁盘加密可以通过专业的加密算法来加密保护磁盘数据&#xff0c;避免电脑磁盘数据泄露。在这里小编推荐使用文件夹只读…

Springboot注意点

1.Usermapper里加param注解 2.RequestParam 和 RequestBody的区别&#xff1a; RequestParam 和 RequestBody的区别&#xff1a; RequestParam 和 RequestBody 是Spring框架中用于处理HTTP请求的两个不同的注 get请求一般用url传参数&#xff0c;所以参数名和参数的值就在ur…

Windows系统下DOS命令

Windows系统下DOS命令 1. 与文件操作相关1.1 mkdir&#xff0c;md命令1.2 rmdir、rd命令1.3 dir命令1.4 start命令1.5 echo命令1.6 type命令1.7 copy命令1.8 move命令1.9 copy和move的区别1.10 del命令1.11 rename命令1.12 attrib命令1.13 fsutil命令1.14 assoc命令 2. 与网络相…

如何在MySQL中实现upsert:如果不存在则插入?

目录 1 使用 REPLACE 2 使用 INSERT ... ON DUPLICATE KEY UPDATE 使用 INSERT IGNORE 有效会导致 MySQL 在尝试执行语句时忽略执行错误 INSERT 。这意味着 包含 索引或 字段 INSERT IGNORE 中重复值的语句 不会 产生错误&#xff0c;而只是完全忽略该特定 命令。其明显目的是…

centos官方yum源不可用 解决方案(随手记)

昨天用yum安装软件的时候&#xff0c;就报错了 [rootop01 ~]# yum install -y net-tools CentOS Stream 8 - AppStream 73 B/s | 38 B 00:00 Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlis…

Ubuntu 22.04.4 LTS安装cmake-3.29.5

一、下载源码 wget https://github.com/Kitware/CMake/releases/download/v3.29.5/cmake-3.29.5.tar.gz tar -xzvf cmake-3.29.5.tar.gz 二、编译 运行./bootstrap。 如果出现下列问题&#xff1a; -- Could NOT find OpenSSL, try to set the path to OpenSSL root folder …

【STM32】STM32F103C6T6标准外设库

1、标准外设库获取 第一步&#xff0c;首先获取标准外设库&#xff0c;可以从官网进行下载。 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 根据自己的型号选择不同的系列&#xff0c;我这里选择是STM32F1系列 下载最新版本V3.6&a…

【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱

Windows11使用Neo4j导入CSV数据可视化知识图谱 序1. 安装JDK21&#xff08;1&#xff09;下载&#xff08;2&#xff09;安装&#xff08;3&#xff09;环境配置 2. 安装Neo4j&#xff08;1&#xff09;下载&#xff08;2&#xff09;解压安装&#xff08;3&#xff09;环境配置…

<Rust><iced>基于rust使用iced库构建GUI实例:动态改变主题色

前言 本专栏是Rust实例应用。 环境配置 平台&#xff1a;windows 软件&#xff1a;vscode 语言&#xff1a;rust 库&#xff1a;iced、iced_aw 概述 本篇构建了这样的一个实例&#xff0c;可以动态修改UI的主题&#xff0c;通过菜单栏来选择预设的自定义主题和官方主题&#…

python如何画函数图像

通过图像可以直观地学习函数变化、分布等规律&#xff0c;在学习函数、概率分布等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。 下面我们来实现一个简单的函数&#xff1a; 首先&#xff0c;调用matplotlib库和numpy库 import matplotlib.pyplot …

UML实现图-部署图

概述 部署图(Deployent Diagram)描述了运行软件的系统中硬件和软件的物理结构。部署图中通常包含两种元素:节点和关联关系&#xff0c;部署图中每个配置必须存在于某些节点上。部署图也可以包含包或子系统。 节点是在运行时代表计算机资源的物理元素。节点名称有两种:简单名和…

Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

Edge 工作区是什么?它都有哪些作用?

什么是工作区 Edge 工作区是什么&#xff1f;它是微软 Edge 浏览器中的一个功能&#xff0c;在帮助用户更好地组织和管理他们的浏览会话。通过工作区&#xff0c;用户可以创建多个独立的浏览环境&#xff0c;每个工作区内包含一组相关的标签页和浏览器设置。这使得用户能够根据…

GPT-4o:免费且更快的模型

OpenAI GPT-4o 公告 OpenAI 推出了增强版 GPT-4 模型——OpenAI GPT-4o&#xff0c;用于支持 ChatGPT。首席技术官 Mira Murati 表示&#xff0c;更新后的模型速度更快&#xff0c;并在文本、视觉和音频处理方面有了显著提升。GPT-4o 将免费向所有用户开放&#xff0c;付费用户…

【TB作品】MSP430F5529 单片机,温度控制系统,DS18B20,使用MSP430实现的智能温度控制系统

作品功能 这个智能温度控制系统基于MSP430单片机设计&#xff0c;能够实时监测环境温度并根据预设的温度报警值自动调节风扇和加热片的工作状态。主要功能包括&#xff1a; 实时显示当前温度。通过OLED屏幕显示温度报警值。通过按键设置温度报警值。实际温度超过报警值时&…

【大模型】Ollama+open-webui/Anything LLM部署本地大模型构建RAG个人知识库教程(Mac)

目录 一、Ollama是什么&#xff1f; 二、如何在Mac上安装Ollama 1. 准备工作 2. 下载并安装Ollama 3. 运行Ollama 4. 安装和配置大型语言模型 5. 使用Ollama 三、安装open-webui 1. 准备工作 2. Open WebUI ⭐的主要特点 3. Docker安装OpenWebUI&#xff0c;拉去太慢…

为Android组件化项目搭建Maven私服

概览 文章目录 概览前言搭建 maven 私服服务器环境jdk安装配置nexus安装配置管理创建存储点、仓库 项目中使用 maven 私服上传 module 到仓库自动发布 module手动上传单个aar包 引用仓库中的 modulebuild.gradle引入远程module FAQ开发阶段有些module用远程依赖&#xff0c;有些…

python tqdm怎么安装

tqdm是一个显示循环的进度条的库。taqadum, تقدّم&#xff09;在阿拉伯语中的意思是进展。tqdm可以在长循环中添加一个进度提示信息&#xff0c;用户只需要封装任意的迭代器 tqdm(iterator)&#xff0c;是一个快速、扩展性强的进度条工具库。 tqdm库的安装 在CMD窗口下输…

神经网络 torch.nn---Containers

torch.nn — PyTorch 2.3 documentation torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io) nn是Neural Network的简称&#xff0c;帮助程序员方便执行如下的与神经网络相关的行为&#xff1a; &#xff08;1&#xff09;创建神经网络 &#xff08;2&#xff09;训练…