“ 实现多语言的切换原理和ResXResourceManager使用。”
,时长00:08
实现多语言的切换原理就很简单了,例如默认是中文,from下就会有一个Form1.resx资源文件,所有的资源文件都是.resx。换个思路如果是WPF程序,那么资源文件就是.xaml。
首先新建一个winfrom程序,添加几个button按钮。
当您选择一个资源文件时,所有条目及其翻译都将显示在可编辑的网格中。
将界面Form的属性的Localizable属性设为True。
在from的Language属性中选中需要翻译的语言。保存后重新编译。Visual Studio会自动创建对应的资源档。
例如日语。这个时候直接把所有控件对应的值修改成日语。
其他语言以此类推。
完事之后创建点击修改语言事件
private void button1_Click(object sender, EventArgs e)
{
//获取或设置资源管理器用于查找特定区域性的当前区域性运行时的资源。
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
//提供用于枚举组件或对象的资源的简单功能。
ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
//遍历所有控件
foreach (Control control in Controls)
{
resources.ApplyResources(control, control.Name);
if (control is MenuStrip menuStrip)
{
//调用 遍历菜单 设置语言
foreach (ToolStripItem item in menuStrip.Items)
{
resources.ApplyResources(item, item.Name);
}
}
}
//this.ResumeLayout(false);
//this.PerformLayout();
resources.ApplyResources(this, "$this");
this.BackgroundImage = global::languagesApp.Properties.Resources.CH;
}
其他语言以此类推。
,时长00:09
打开语言资源文件可以看到每个控件对应的值。像这样一个一个的修改,每次都要打开from然后重新编译之后from窗口才会加载资源文件。就很麻烦。
为了方便,这里推荐ResXResourceManager来管理
ResX 资源管理器
使用基于 resx 的资源管理各种应用程序本地化的最流行工具。
下载地址:https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager
直接在visual studio扩展中下载安装
modeify
安装完成后重启visual studio。就可以看到它出现在工具下面。
使用方式就直接右键资源文件选中在ResX Manager中打开。
打开之后就出现管理界面,通过这个来做控件翻译就很方便了,所有添加的资源文件都在这个里面。