Удалите свой метод и попробуйте сделать это в файле Program.cs:
//Add this line
Thread.CurrentThread.CurrentUICulture = new CultureInfo(languageString);
Application.Run(new Form());
Edit:
Главное, почему ваш код не работает, это то, что вы применяете язык для элементов управления формы. Это означает, что вы применяете элемент управления TabControl, но TabControl также имеет элементы управления (вкладки) «внутри». Поэтому вам нужно рекурсивно выполнять итерации по элементам управления, чтобы применить язык ко всем элементам управления и подэлементам управления. Попробуйте этот код:
private void LoadLanguage(string lang)
{
ComponentResourceManager resources = new ComponentResourceManager(typeof(main));
CultureInfo cultureInfo = new CultureInfo(lang);
doRecursiveLoading(this, cultureInfo, resources);
}
private void doRecursiveLoading(Control parent, CultureInfo cultureInfo, ComponentResourceManager resources)
{
foreach (Control c in parent.Controls)
{
resources.ApplyResources(c, c.Name, cultureInfo);
if (c.Controls.Count > 0)
doRecursiveLoading(c, cultureInfo, resources);
}
}