public void ChangeLanguage(Form1 form1, FormMods formMods)
        {
            // Apply translation to forms:
            Translation translation = Localization.GetTranslation();

            translation.Apply();

            // Set labels and stuff:
            form1.labelOutdatedLanguage.Visible = translation.IsOutdated();

            form1.labelTranslationAuthor.Visible = false;
            form1.labelTranslationBy.Visible     = false;
            if (translation.Author != "")
            {
                form1.labelTranslationAuthor.Visible = true;
                form1.labelTranslationBy.Visible     = true;
                form1.labelTranslationAuthor.Text    = translation.Author;
            }

            form1.RefreshNWModeButtonAppearance();
            form1.CheckVersion();
            formMods.UpdateUI();

            // Force redraw:
            form1.Refresh();
            formMods.Refresh();

            // Set sLanguage in config.ini:
            IniFiles.Instance.Set(IniFile.Config, "Preferences", "sLanguage", translation.ISO);
            Localization.locale = translation.ISO;

            if (translation.ISO != "en-US")
            {
                Localization.GenerateTemplate(translation);
            }
        }
        public Form1()
        {
            InitializeComponent();

            // Determine whether this is the very first start of the tool on the system:
            FirstStart = !File.Exists(IniFiles.ConfigPath) && !File.Exists(ProfileManager.XMLPath);

            // Handle changes:
            ProfileManager.ProfileChanged += OnProfileChanged;

            // Create FormMods:
            formMods = new FormMods();
            FormMods.NWModeUpdated += OnNWModeUpdated;
            UpdateNWModeUI(false);

            /*
             * Translations
             */

            // Make this form translatable:
            LocalizedForm form = new LocalizedForm(this, this.toolTip);

            form.SpecialControls.Add(this.contextMenuStripGallery);
            Localization.LocalizedForms.Add(form);

            // Handle translations:
            Translation.LanguageChanged += OnLanguageChanged;

            // Add control elements to blacklist:
            Translation.BlackList.AddRange(new string[] {
                "labelConfigVersion",
                "labelAuthorName",
                "labelTranslationAuthor",
                "groupBoxWIP",
                "labelNewVersion",
                "labelGameEdition",
                "toolStripStatusLabelGameText",
                "toolStripStatusLabelEditionText",
                "toolStripStatusLabel1",
                "labelPipboyResolutionSpacer"
            });


            /*
             * Dropdowns
             */

            #region Dropdowns

            // Let's add options to the drop-down menus:

            // Display resolution usage statistics (and lists):
            // https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam
            // https://www.rapidtables.com/web/dev/screen-resolution-statistics.html
            // https://w3codemasters.in/most-common-screen-resolutions/
            // https://www.reneelab.com/video-with-4-3-format.html
            // https://www.overclock.net/threads/list-of-display-resolutions-aspect-ratios.539967/
            // https://en.wikipedia.org/wiki/List_of_common_resolutions
            DropDown.Add("Resolution", new DropDown(
                             this.comboBoxResolution,
                             new string[] {
                "Custom",
                "",
                "┌───────────────────────────────┐",
                "│  4:3                          │",
                "├───────────────────────────────┤",
                "│ [4:3]    640 x  480 (VGA)     │",
                "│ [4:3]    800 x  600 (SVGA)    │",
                "│ [4:3]    960 x  720           │",
                "│ [4:3]   1024 x  768 (XGA)     │",
                "│ [4:3]   1152 x  864           │",
                "│ [4:3]   1280 x  960           │",
                "│ [4:3]   1400 x 1050           │",
                "│ [4:3]   1440 x 1080           │",
                "│ [4:3]   1600 x 1200           │",
                "│ [4:3]   1920 x 1440           │",
                "│ [4:3]   2048 x 1536           │",
                "│ [4:3]   2880 x 2160           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  5:3                          │",
                "├───────────────────────────────┤",
                "│ [5:3]    800 x  480           │",
                "│ [5:3]   1280 x  768 (WXGA)    │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  5:4                          │",
                "├───────────────────────────────┤",
                "│ [5:4]   1152 x  960           │",
                "│ [5:4]   1280 x 1024           │",
                "│ [5:4]   2560 x 2048           │",
                "│ [5:4]   5120 x 4096           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  8:5                          │",
                "├───────────────────────────────┤",
                "│ [8:5]   1280 x  800           │",
                "│ [8:5]   1440 x  900           │",
                "│ [8:5]   1680 x 1050           │",
                "│ [8:5]   1920 x 1200           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  16:9                         │",
                "├───────────────────────────────┤",
                "│ [16:9]  1024 x  576           │",
                "│ [16:9]  1152 x  648           │",
                "│ [16:9]  1280 x  720 (HD)      │",
                "│ [16:9]  1360 x  768           │",
                "│ [16:9]  1365 x  768           │",
                "│ [16:9]  1366 x  768           │",
                "│ [16:9]  1536 x  864           │",
                "│ [16:9]  1600 x  900           │",
                "│ [16:9]  1920 x 1080 (Full HD) │",
                "│ [16:9]  2560 x 1440 (WQHD)    │",
                "│ [16:9]  3200 x 1800           │",
                "│ [16:9]  3840 x 2160 (4K UHD1) │",
                "│ [16:9]  5120 x 2880 (5K)      │",
                "│ [16:9]  7680 x 4320 (8K UHD2) │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  16:10                        │",
                "├───────────────────────────────┤",
                "│ [16:10]  640 x  400           │",
                "│ [16:10] 1280 x  800           │",
                "│ [16:10] 1440 x  900           │",
                "│ [16:10] 1680 x 1050           │",
                "│ [16:10] 1920 x 1200           │",
                "│ [16:10] 2560 x 1600           │",
                "│ [16:10] 3840 x 2400           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  17:9                         │",
                "├───────────────────────────────┤",
                "│ [17:9]  2048 x 1080           │",
                "│                               │",
                "│                               │",
                "├───────────────────────────────┤",
                "│  21:9                         │",
                "├───────────────────────────────┤",
                "│ [21:9]  1920 x  800           │",
                "│ [21:9]  2560 x 1080           │",
                "│ [21:9]  3440 x 1440           │",
                "│ [21:9]  3840 x 1600           │",
                "│ [21:9]  5120 x 2160           │",
                "│                               │",
                "│                               │",
                "└───────────────────────────────┘",
                ""
            }
                             ));

            DropDown.Add("DisplayMode", new DropDown(
                             this.comboBoxDisplayMode,
                             new string[] {
                "Fullscreen",
                "Windowed",
                "Borderless windowed",
                "Borderless windowed (Fullscreen)"
            }
                             ));

            DropDown.Add("AntiAliasing", new DropDown(
                             this.comboBoxAntiAliasing,
                             new string[] {
                "TAA (default)",
                "FXAA",
                "Disabled"
            }
                             ));

            DropDown.Add("AnisotropicFiltering", new DropDown(
                             this.comboBoxAnisotropicFiltering,
                             new string[] {
                "None",
                "2x",
                "4x",
                "8x (default)",
                "16x"
            }
                             ));

            DropDown.Add("ShadowTextureResolution", new DropDown(
                             this.comboBoxShadowTextureResolution,
                             new string[] {
                "512 = Potato",
                "1024 = Low",
                "2048 = High (default)",
                "4096 = Ultra"
            }
                             ));

            DropDown.Add("ShadowBlurriness", new DropDown(
                             this.comboBoxShadowBlurriness,
                             new string[] {
                "1x",
                "2x",
                "3x = Default, recommended"
            }
                             ));

            DropDown.Add("VoiceChatMode", new DropDown(
                             this.comboBoxVoiceChatMode,
                             new string[] {
                "Auto",
                "Area",
                "Team",
                "None"
            }
                             ));

            DropDown.Add("ShowActiveEffectsOnHUD", new DropDown(
                             this.comboBoxShowActiveEffectsOnHUD,
                             new string[] {
                "Disabled",
                "Detrimental",
                "All"
            }
                             ));

            DropDown.Add("iDirShadowSplits", new DropDown(
                             this.comboBoxiDirShadowSplits,
                             new string[] {
                "1 - Low",
                "2 - High / Medium",
                "3 - Ultra"
            }
                             ));

            #endregion

            /*
             * Event handlers:
             */

            // Disable scroll wheel on UI elements to prevent the user from accidentally changing values:
            Utils.PreventChangeOnMouseWheelForAllElements(this);

            // Event handler:
            this.FormClosing += this.Form1_FormClosing;
            this.Shown       += this.Form1_Shown;
            this.KeyDown     += this.Form1_KeyDown;

            this.backgroundWorkerGetLatestVersion.RunWorkerCompleted += backgroundWorkerGetLatestVersion_RunWorkerCompleted;

            InitAccountProfileRadiobuttons();

            // Pipboy screen preview:
            InitPipboyScreen();
            this.colorPreviewPipboy.BackColorChanged += colorPreviewPipboy_BackColorChanged;

            // Danger Zone:
            this.tabControl1.TabPages.Remove(this.tabPageDangerZone);
            FormSettings.SettingsClosing += (object sender, EventArgs e) =>
            {
                if (FormSettings.DangerZoneEnabled && !this.tabControl1.TabPages.Contains(this.tabPageDangerZone))
                {
                    this.tabControl1.TabPages.Add(this.tabPageDangerZone);
                    LinkDangerZoneControls();
                }
            };
        }