private void settingsToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { // Populate language dropdown during first run if (languagesToolStripMenuItem.DropDownItems.Count == 0) { var spaceWidth = TextRenderer.MeasureText(" ", Font, Size).Width; ToolStripMenuItem CreateLanguageToggle(CultureInfo x) { var textWidth = TextRenderer.MeasureText(x.NativeName, Font, Size).Width; return(new ToolStripMenuItem( $"{x.NativeName.PadRight(50 - textWidth / spaceWidth)} {x.EnglishName}", null, (obj, args) => { LanguageManager.CurrentCulture = (CultureInfo)((ToolStripMenuItem)obj).Tag; LanguageManager.ApplyCurrentCulture(this); MessageBox.Show( "You might need to restart KKManager to fully change the laguage.", "Language change", MessageBoxButtons.OK, MessageBoxIcon.Warning); }) { Tag = x }); } languagesToolStripMenuItem.DropDownItems.AddRange(LanguageManager.SupportedLanguages.Select(CreateLanguageToggle).ToArray()); } // Select current language in the language dropdown var currentLang = LanguageManager.CurrentCulture; foreach (ToolStripMenuItem langItem in languagesToolStripMenuItem.DropDownItems) { var lang = (CultureInfo)langItem.Tag; langItem.Checked = lang.Equals(currentLang); } }