Преобразование языка страницы
Есть ли у кого-нибудь идея, почему мой код не работает? У меня везде английские струны.
Обратите внимание, что это не ASP.NET проект, но настоящий проект WinForms.
Я настроил проект windows forms для использования локализации, чтобы он поддерживал арабский и английский языки.
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); Admin admin = new Admin(); this.Close(); admin.Show(); Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-KW"); Admin admin = new Admin(); this.Close(); admin.Show();
Что я уже пробовал:
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); this.Controls.Clear(); this.RightToLeftLayout = false; InitializeComponent(); Properties.Settings.Default["lang"] = "en-US"; Properties.Settings.Default.Save(); Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-KW"); this.Controls.Clear(); InitializeComponent(); Properties.Settings.Default["lang"] = "ar-KW"; Properties.Settings.Default.Save();
и
var ChangLanuguage = new Changelanguage(); ChangLanuguage.Updateconfig("language", "ar-KW"); Application.Restart();
private void ChangeLanguage(string lang) { foreach (Control c in this.Controls) { ComponentResourceManager resources = new ComponentResourceManager(typeof(Admin)); resources.ApplyResources(c, c.Name, new CultureInfo(lang)); } }
и
private void metroTile58_Click(object sender, EventArgs e) { switch(Thread.CurrentThread.CurrentUICulture.IetfLanguageTag) { case "ar-KW":Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");break; case "en-US": Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-KW"); break; } this.Controls.Clear(); InitializeComponent(); }
Он работает, когда я тестирую его, начиная отлаживать, но когда я устанавливаю (когда программа извлекается) приложение, оно перестает работать.