@@ -23,19 +23,45 @@ public class Internationalization
23
23
private const string Extension = ".xaml" ;
24
24
private readonly List < string > _languageDirectories = new List < string > ( ) ;
25
25
private readonly List < ResourceDictionary > _oldResources = new List < ResourceDictionary > ( ) ;
26
+ private readonly string SystemLanguageCode ;
26
27
27
28
public Internationalization ( )
28
29
{
29
30
AddFlowLauncherLanguageDirectory ( ) ;
31
+ SystemLanguageCode = GetSystemLanguageCode ( ) ;
30
32
}
31
33
32
-
33
34
private void AddFlowLauncherLanguageDirectory ( )
34
35
{
35
36
var directory = Path . Combine ( Constant . ProgramDirectory , Folder ) ;
36
37
_languageDirectories . Add ( directory ) ;
37
38
}
38
39
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
+ }
39
65
40
66
internal void AddPluginLanguageDirectories ( IEnumerable < PluginPair > plugins )
41
67
{
@@ -74,7 +100,7 @@ public void ChangeLanguage(string languageCode)
74
100
var isSystem = false ;
75
101
if ( languageCode == Constant . SystemLanguageCode )
76
102
{
77
- languageCode = GetSystemLanguageCode ( ) ;
103
+ languageCode = SystemLanguageCode ;
78
104
isSystem = true ;
79
105
}
80
106
@@ -178,36 +204,10 @@ private void LoadLanguage(Language language)
178
204
public List < Language > LoadAvailableLanguages ( )
179
205
{
180
206
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 ) ) ) ;
182
208
return list ;
183
209
}
184
210
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
-
211
211
public string GetTranslation ( string key )
212
212
{
213
213
var translation = Application . Current . TryFindResource ( key ) ;
0 commit comments