Skip to content

Commit 9c26fe1

Browse files
committed
prevent potential crash on launch
1 parent a5b3e0b commit 9c26fe1

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

src/UniGetUI.Core.LanguageEngine/LanguageEngine.cs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,30 @@ public LanguageEngine(string ForceLanguage = "")
3535
/// <param name="lang">the language code</param>
3636
public void LoadLanguage(string lang)
3737
{
38-
Locale = "en";
39-
if (LanguageData.LanguageReference.ContainsKey(lang))
38+
try
4039
{
41-
Locale = lang;
40+
Locale = "en";
41+
if (LanguageData.LanguageReference.ContainsKey(lang))
42+
{
43+
Locale = lang;
44+
}
45+
else if (LanguageData.LanguageReference.ContainsKey(lang[0..2].Replace("uk", "ua")))
46+
{
47+
Locale = lang[0..2].Replace("uk", "ua");
48+
}
49+
50+
MainLangDict = LoadLanguageFile(Locale);
51+
Formatter = new() { Locale = Locale.Replace('_', '-') };
52+
53+
LoadStaticTranslation();
54+
SelectedLocale = Locale;
55+
Logger.Info("Loaded language locale: " + Locale);
4256
}
43-
else if (LanguageData.LanguageReference.ContainsKey(lang[0..2].Replace("uk", "ua")))
57+
catch (Exception ex)
4458
{
45-
Locale = lang[0..2].Replace("uk", "ua");
59+
Logger.Error($"Could not load language file \"{lang}\"");
60+
Logger.Error(ex);
4661
}
47-
48-
MainLangDict = LoadLanguageFile(Locale);
49-
Formatter = new() { Locale = Locale.Replace('_', '-') };
50-
51-
LoadStaticTranslation();
52-
SelectedLocale = Locale;
53-
Logger.Info("Loaded language locale: " + Locale);
5462
}
5563

5664
public Dictionary<string, string> LoadLanguageFile(string LangKey)

0 commit comments

Comments
 (0)