Skip to content

Commit abe943b

Browse files
committed
Fix system language code fetch issue
1 parent 46c2c1f commit abe943b

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

Flow.Launcher.Core/Resource/Internationalization.cs

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,45 @@ public class Internationalization
2323
private const string Extension = ".xaml";
2424
private readonly List<string> _languageDirectories = new List<string>();
2525
private readonly List<ResourceDictionary> _oldResources = new List<ResourceDictionary>();
26+
private readonly string SystemLanguageCode;
2627

2728
public Internationalization()
2829
{
2930
AddFlowLauncherLanguageDirectory();
31+
SystemLanguageCode = GetSystemLanguageCode();
3032
}
3133

32-
3334
private void AddFlowLauncherLanguageDirectory()
3435
{
3536
var directory = Path.Combine(Constant.ProgramDirectory, Folder);
3637
_languageDirectories.Add(directory);
3738
}
3839

40+
private static string GetSystemLanguageCode()
41+
{
42+
var availableLanguages = AvailableLanguages.GetAvailableLanguages();
43+
44+
// Retrieve the language identifiers for the current culture
45+
var currentCulture = CultureInfo.CurrentCulture;
46+
var twoLetterCode = currentCulture.TwoLetterISOLanguageName;
47+
var threeLetterCode = currentCulture.ThreeLetterISOLanguageName;
48+
var fullName = currentCulture.Name;
49+
50+
// Try to find a match in the available languages list
51+
foreach (var language in availableLanguages)
52+
{
53+
var languageCode = language.LanguageCode;
54+
55+
if (string.Equals(languageCode, twoLetterCode, StringComparison.OrdinalIgnoreCase) ||
56+
string.Equals(languageCode, threeLetterCode, StringComparison.OrdinalIgnoreCase) ||
57+
string.Equals(languageCode, fullName, StringComparison.OrdinalIgnoreCase))
58+
{
59+
return languageCode;
60+
}
61+
}
62+
63+
return DefaultLanguageCode;
64+
}
3965

4066
internal void AddPluginLanguageDirectories(IEnumerable<PluginPair> plugins)
4167
{
@@ -74,7 +100,7 @@ public void ChangeLanguage(string languageCode)
74100
var isSystem = false;
75101
if (languageCode == Constant.SystemLanguageCode)
76102
{
77-
languageCode = GetSystemLanguageCode();
103+
languageCode = SystemLanguageCode;
78104
isSystem = true;
79105
}
80106

@@ -178,36 +204,10 @@ private void LoadLanguage(Language language)
178204
public List<Language> LoadAvailableLanguages()
179205
{
180206
var list = AvailableLanguages.GetAvailableLanguages();
181-
list.Insert(0, new Language(Constant.SystemLanguageCode, AvailableLanguages.GetSystemTranslation(GetSystemLanguageCode())));
207+
list.Insert(0, new Language(Constant.SystemLanguageCode, AvailableLanguages.GetSystemTranslation(SystemLanguageCode)));
182208
return list;
183209
}
184210

185-
private string GetSystemLanguageCode()
186-
{
187-
var availableLanguages = AvailableLanguages.GetAvailableLanguages();
188-
189-
// Retrieve the language identifiers for the current culture
190-
var currentCulture = CultureInfo.CurrentCulture;
191-
var twoLetterCode = currentCulture.TwoLetterISOLanguageName;
192-
var threeLetterCode = currentCulture.ThreeLetterISOLanguageName;
193-
var fullName = currentCulture.Name;
194-
195-
// Try to find a match in the available languages list
196-
foreach (var language in availableLanguages)
197-
{
198-
var languageCode = language.LanguageCode;
199-
200-
if (string.Equals(languageCode, twoLetterCode, StringComparison.OrdinalIgnoreCase) ||
201-
string.Equals(languageCode, threeLetterCode, StringComparison.OrdinalIgnoreCase) ||
202-
string.Equals(languageCode, fullName, StringComparison.OrdinalIgnoreCase))
203-
{
204-
return languageCode;
205-
}
206-
}
207-
208-
return DefaultLanguageCode;
209-
}
210-
211211
public string GetTranslation(string key)
212212
{
213213
var translation = Application.Current.TryFindResource(key);

0 commit comments

Comments
 (0)