最近,我决定在我的应用程序中添加 4 种语言。我读到了如何做到这一点,我成功了。
但是我想问两个问题/问题。
第一个问题:是否有更好的方法来更改每个控件的文本
private System.Resources.ResourceManager rm;
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr");
rm = new System.Resources.ResourceManager(typeof(MainForm));
然后为每个控件写下这一行:
aboutToolStripMenuItem.Text = rm.GetString("aboutToolStripMenuItem.Text");
addTaskToolStripMenuItem.Text = rm.GetString("addTaskToolStripMenuItem.Text");
addTaskToolStripMenuItem1.Text = rm.GetString("addTaskToolStripMenuItem1.Text");
...
第二个问题:假设 label1 的文本是“test”,而在其他语言中是“testest”,那么标签的大小会改变,这没关系。但如果我得到 label2 他的位置在 label1 附近,则 label1 可能在 label2 的顶部。如何移动 label1 与 label2 比较所以无论 label1 中的文本有多长,label2 的位置都将相对于 label1。我不想在程序中使用计算,我想知道其中一个控件中是否还有其他方式,例如属性。
编辑:经过长时间的思考,我决定将 XML 用于我的多语言。这样我可以让人们翻译它并为我上传它,而且我可以在运行时使用它或重新加载程序。
关于我将使用的控件的相对位置,FlowLayoutPanel
或者TableLayoutPanel
我将进一步检查哪个更好。