我已经阅读了关于如何在.Net中创建多语言程序的教程,它运行良好,但在这里我需要一个让运行时的所有内容更容易的想法。 在用户点击语言时的运行时。我改变文化,以例如选择适当的语言:在运行时更改语言的应用程序
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
,然后调用它设置文本为我的布局形式的函数:
private System.Resources.ResourceManager rm;
fileToolStripMenuItem1.Text = rm.GetString("fileToolStripMenuItem1.Text");
settingsToolStripMenuItem.Text = rm.GetString("settingsToolStripMenuItem.Text");
,因为它似乎在查表当我为我的程序的每个组件设置文本时,它已经由.Net构建,与应该设置的属性相同。换句话说,“fileToolStripMenuItem1.Text”传递给GetString()函数,并且结果应该设置为fileToolStripMenuItem1.Text,所以我不知道我该怎么做,甚至无法使用哪个工具来迭代在rm的每个属性上,然后通过反射或其他方法将密钥的值分配给密钥。也就是说,假设“fileToolStripMenuItem1.Text”是查找表中的关键字,值是“A”,那么我该如何做到这一点:将“fileToolStripMenuItem1.Text”的值为“A”赋值给fileToolStripMenuItem1.Text
可能重复[我怎样在运行时更改WinForms应用程序的文化](http://stackoverflow.com/questions/7556367/how-do-i-change-the-culture-of-a-winforms-applicati运行时) –
我遇到了另一个问题,我改变了menutrip的子项,但是在你的函数ApplyResources中,它在menuStrip上迭代并跳过子项! – Ehsan