UI: Fix bug where Language detection could fail to happen (#796)

This commit is contained in:
Dan Weiss 2020-03-30 22:30:33 -04:00 committed by GitHub
parent cfc5bf6976
commit d400842e98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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 + "']");