Ejemplo n.º 1
0
        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);
            }
        }