代码改变世界

WPF 全球化和本地化(图解)

  敏捷的水  阅读(7371)  评论(8编辑  收藏  举报

当您将自己的产品限制为只能通过一种语言使用时,您便将潜在的客户群限制为全球 65 亿人口中的一小部分。如果您想让自己的应用程序被全球用户所接受,那么对产品进行经济而有效的本地化将是赢得更多客户的最好、最经济的方法

本文源码下载:https://files.cnblogs.com/cnblogsfans/WPFLocalize.rar

1.新建WPF Application

image

2.定义界面如下

imageimage

4.用记事本打开LocalizeLesson.csproj工程文件,添加黄色的一句

image

5.回到工程,选择reload,进入命令行,进入我们工程文件所在目录,输入下面红色的命令。

image

7.打开我们工程中XAML文件,发现自动为我们加上了x:Uid, 这个就相当于是资源文件的key

image

8.编译工程,会在debug下生成en-US\LocalizeLesson.resources.dll

image

9.拷贝LocBaml.exe到debug下,这个是微软提供的,只有源码,本文源码里有,可以下载本文源码https://files.cnblogs.com/cnblogsfans/WPFLocalize.rar

image

10.现在根据生成的dll提取一份资源文件到一个csv文件修改,这里命名LocalizeLesson.csv

image image

12. 我们最好用excel打开这个LocalizeLesson.csv,最后一行就是我们需要修改的内容,这里我用记事本打开,因为机器没装excel

image

13.在debug下新建一根zh-CN文件夹,根据修改后csv文件,输入下面红色的命令。

image image

14.为了可以切换界面,我们给两个按钮命名,并添加单击事件

image

image

15.运行,效果如下

image

这里还有一个切换语言时放到Application的构造函数里,也就是App.xaml.cs,启动时从配置文件读取语言。

这里一个疑问,恳请高手解答:

(1)有没有什么方法当我点击按钮时,直接切换语言,不用打开新窗口

(2) 我用打开新窗口方法,但有个问题,就是打开的中文界面按钮上的事件不起作用了,就是上图第二个窗口按钮失效。

 

欢迎转载,转载请说明出处

作者:王德水  http://cnblogsfans.cnblogs.com

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示