Недавно я решил добавить 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. Я не хочу использовать вычисления в программе, я хочу знать, есть ли другой способ, как свойство, в одном из элементов управления.
EDIT:
после долгих раздумий я решил использовать XML для своего мультиязычности. таким образом я могу позволить людям перевести его и загрузить его для меня, плюс я могу использовать его во время выполнения или перезагрузить программы.
Об относительном положении элементов управления, которые я буду использовать FlowLayoutPanel
или TableLayoutPanel
Я проверю далее, что лучше.