From d400842e980dd26c61f0eeb2f04d4130a53813c4 Mon Sep 17 00:00:00 2001 From: Dan Weiss Date: Mon, 30 Mar 2020 22:30:33 -0400 Subject: [PATCH] UI: Fix bug where Language detection could fail to happen (#796) --- GUI.NET/Forms/ResourceHelper.cs | 36 ++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/GUI.NET/Forms/ResourceHelper.cs b/GUI.NET/Forms/ResourceHelper.cs index 1bc54def..7261fb9e 100644 --- a/GUI.NET/Forms/ResourceHelper.cs +++ b/GUI.NET/Forms/ResourceHelper.cs @@ -37,6 +37,10 @@ namespace Mesen.GUI.Forms public static Language GetCurrentLanguage() { + if (_language == Language.SystemDefault) + { + _language = DetectLanguage(); + } return _language; } @@ -66,18 +70,7 @@ namespace Mesen.GUI.Forms public static void LoadResources(Language language) { if(language == Language.SystemDefault) { - switch(System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName) { - default: - case "en": language = Language.English; break; - case "fr": language = Language.French; break; - case "ja": language = Language.Japanese; break; - case "ru": language = Language.Russian; break; - case "es": language = Language.Spanish; break; - case "uk": language = Language.Ukrainian; break; - case "pt": language = Language.Portuguese; break; - case "zh": language = Language.Chinese; break; - case "it": language = Language.Italian; break; - } + language = DetectLanguage(); } string filename; @@ -107,6 +100,25 @@ namespace Mesen.GUI.Forms } } + private static Language DetectLanguage() + { + Language language = Language.SystemDefault; + switch (System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName) + { + default: + case "en": language = Language.English; break; + case "fr": language = Language.French; break; + case "ja": language = Language.Japanese; break; + case "ru": language = Language.Russian; break; + case "es": language = Language.Spanish; break; + case "uk": language = Language.Ukrainian; break; + case "pt": language = Language.Portuguese; break; + case "zh": language = Language.Chinese; break; + case "it": language = Language.Italian; break; + } + return language; + } + public static string GetMessage(string id, params object[] args) { var baseNode = _resources.SelectSingleNode("/Resources/Messages/Message[@ID='" + id + "']");