开发工具:Visual Stadio
文档最后附有该示例源码下载。
1、窗体文本切换
当新建一个Form或一个UserControl时,将自动生成一个.resx文件,该文件保存默认语言时的文本。
1.1、将Localizable设置为true,启用本地化支持。
1.2、新建一个繁体中文资源文件,添加——>新建项——>找到资源文件,起名为Form1.zh-TW.resx。(语言资源文件的命名规则是:窗体名.语言名.resx)
常用的语言名有:zh-CN(简体中文),zh-TW(台湾繁体),zh-US(美式英文)
如果VS编译不通过,可以拷贝默认.resx文件,再重命名为对应语言的名称格式(如:xxx.zh-CN.resx),最后添加现有项文件,并把它拖放到与默认.resx文件同级位置。
1.3、从工具箱中找到按钮控件,拖放到Form1窗体去新建Button。双击其中一个.resx文件,为它配置繁体中文文本。注:如果开发工具的语言是简体中文,它的默认值就是简体中文。
1.4、选中Form1窗体,切换Language为zh-TW,查看按钮文件变化。
2、使用代码实现语言切换功能
2.1、首先,切换为Default语言。从工具箱中找到菜单控件,拖放到Form1窗体去新建MenuStrip控件。
2.2、下拉项命名为Language,分别为它添加Default与繁体中文语言。
2.3、添加语言切换帮助类,用于运行时切换语言。WinForms 的资源加载看的是 CurrentUICulture(UI 语言)。
2.4、重新对窗体执行资源应用(ApplyResources)以刷新控件文本。刷新当前窗体的关键是递归 ApplyResources
2.5、点击菜单切换语言。这时,可以看到button文本可以实时切换默认语言与繁体中文。其他控件也是同样的道理,只需要添加对应的资源数据。
3、记住当前语言,并在启动时应用。
3.1、在项目下的设置文件中添加UiCulture数据,当前值可以先留空白。
3.2、在切换语言时,保存当前值。
3.3、将所有已打开的窗体切换语言。(顺便将语言切换行为改成一个方法。)
3.4、在 Program.cs 里 Application.Run() 之前设置上次保存的语言。
3.5、这时,即可实时切换语言,又可以在启动软件时使用上次保存的语言。
4、业务字符串的本地化
4.1、新建繁体中文全局资源文件Resources.zh-TW.resx
4.2、添加需要的字符串语言数据。
4.3、在点击按钮时,根据不同的语言显示对应的文本。
繁体中文语言提示。
默认语言提示。
5、动态生成的控件支持多语言
思路:给动态控件绑定 Tag 作为资源 Key,切语言时统一刷新。当然,如果Tag属性另有他用,你也可以使用业务字符串的本地化。
5.1、在窗体中添加FlowLayoutPanel与button。
5.2、给动态控件绑定 Tag 作为资源 Key
通过资源Key获取对应的语言值。
5.3、在资源文件添加对应的Tag语言数据。
5.4、分别在繁体中文与英文语言时添加按钮。
该示例源码下载:
链接: https://pan.baidu.com/s/1sE7KIsi11R444LGGZyAhKw
提取码: ye8w
¥9.99