【发布时间】:2011-02-14 19:32:16
【问题描述】:
最近,我决定在我的应用程序中添加 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 我会进一步检查哪个更好。
【问题讨论】:
-
您确实明白,如果您希望这些词是法语的,您实际上必须翻译这些词,对吧?
-
是的,我知道而且我已经用法语做了一个新的 resx...我说我成功了...
-
我不知道你说了什么,因为你的问题不清楚。如果要根据 TextBoxA 的位置调整 TextBox B 的位置,请根据 TextboxA 的大小调整位置(调整控件的 X 位置)。
标签: c# winforms multilingual resourcemanager