@@ -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