关于多语言界面的问题 Winform 我用的方法是资源文件修改参数的方法参考这里的方法,里面提到了“要实现国际化的控件在资源文件中命名规则是: Form窗体 + 控件名称。” 我用label和button都没有问题,但我想将menuStrip上的,比如文件。汉化为File,他的控件名称“文件FToolStripMenuItem”我在前面加上窗体名称,放到资源文件里修改,但还是不能达到效果,同样的方法,Label和button都可以。。求解…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我喜欢这样!!!所有可视控件的text都初始化、更新自文件,然后文件就可以自由diy了~~~ 原文章并没有处理MenuItem。如果你理解了,自己加上相应处理就可以了。 private static void AppLang(ToolStripItem item, System.ComponentModel.ComponentResourceManager resources) { if (item is ToolStripMenuItem) { resources.ApplyResources(item, item.Name); ToolStripMenuItem tsmi = (ToolStripMenuItem)item; if (tsmi.DropDownItems.Count > 0) { foreach (ToolStripItem c in tsmi.DropDownItems) { if(c is ToolStripMenuItem) AppLang(c, resources); } } } }http://hi.baidu.com/89806/blog/item/b054712c2c4e24ea8b13997b.html 我喜欢用XML来放语言字串~翻译方便。添加也方便。 原文的case中加上,你需要做多语言的控件类型处理分支,其他类型照这个做就可以了. case "ToolStripMenuItem": control.Controls[i].Text = getMsg(formName + control.Controls[i].Name); break;其实,这样处理很笨.CodeProject上,有个UICultureChanger组件,是基于资源的多语言的更好的实现,可以动态切换语言.UICultureChanger 楼主的菜单可能是通过设计器设计的,这样的话,要修改设计器生成的文件,如果不会使用,可以试着给菜单加一个图标,然后到设计器生成的文件(*.designer.cs)中找到菜单一项,看看他的图标文件是怎么使用资源文件的其实和你button什么的一样的用法 看看这篇文章,通过xml文件方式实现多语言http://blog.csdn.net/dunao/archive/2010/10/19/5952723.aspx 使用资源文件实现多语言类似Form.en-us.resxForm.zh-ch.resx这是Windows Form内置的多语言支持机制,推荐使用.很多人提及的建立自己的语言文件,只能处理语言,能处理控件的 字体,大小,位置 吗? 答案是不能,但基于资源文件的多语言可以做到. datatrid如何统计汇总 给datagridview添加的按钮列怎么设置每个按钮上显示的文字? 请问,有人知道网上自动更新吗? exDatagrid2_CurrentCellChanged 提交数据库后为何无变化? ASP.NET(C#) textbox响应问题 感谢8789715群的朋友,散分 今日话题:防盗防盗防盗!防止盗链下载问题! 花儿快谢了 什么情况下应该创建abstract class 请看一下:我在看inside c#的chapter 8时,下面的例程总通不过 C#异常忽略继续执行 DataGridView控件标记列隐藏
我喜欢这样!!!所有可视控件的text都初始化、更新自文件,然后文件就可以自由diy了~~~
如果你理解了,自己加上相应处理就可以了。
{
if (item is ToolStripMenuItem)
{
resources.ApplyResources(item, item.Name);
ToolStripMenuItem tsmi = (ToolStripMenuItem)item;
if (tsmi.DropDownItems.Count > 0)
{
foreach (ToolStripItem c in tsmi.DropDownItems)
{
if(c is ToolStripMenuItem)
AppLang(c, resources);
}
}
}
}
http://hi.baidu.com/89806/blog/item/b054712c2c4e24ea8b13997b.html
control.Controls[i].Text = getMsg(formName + control.Controls[i].Name);
break;
其实,这样处理很笨.CodeProject上,有个UICultureChanger组件,是基于资源的多语言的更好的实现,可以动态切换语言.UICultureChanger
如果不会使用,可以试着给菜单加一个图标,然后到设计器生成的文件(*.designer.cs)
中找到菜单一项,看看他的图标文件是怎么使用资源文件的
其实和你button什么的一样的用法
http://blog.csdn.net/dunao/archive/2010/10/19/5952723.aspx
类似
Form.en-us.resx
Form.zh-ch.resx
这是Windows Form内置的多语言支持机制,推荐使用.很多人提及的建立自己的语言文件,只能处理语言,
能处理控件的 字体,大小,位置 吗?
答案是不能,但基于资源文件的多语言可以做到.