Skip to content

Commit a15a408

Browse files
Store CultureInfo in i18n manager
1 parent 082c1c9 commit a15a408

File tree

3 files changed

+8
-13
lines changed

3 files changed

+8
-13
lines changed

Flow.Launcher.Core/Resource/Internationalization.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace Flow.Launcher.Core.Resource
1717
public class Internationalization
1818
{
1919
public Settings Settings { get; set; }
20+
public CultureInfo CurrentCulture { get; private set; }
2021
private const string Folder = "Languages";
2122
private const string DefaultFile = "en.xaml";
2223
private const string Extension = ".xaml";
@@ -62,6 +63,7 @@ private void LoadDefaultLanguage()
6263
{
6364
LoadLanguage(AvailableLanguages.English);
6465
_oldResources.Clear();
66+
CurrentCulture = new CultureInfo("en");
6567
}
6668

6769
public void ChangeLanguage(string languageCode)
@@ -96,9 +98,12 @@ public void ChangeLanguage(Language language)
9698
{
9799
LoadLanguage(language);
98100
}
99-
Settings.Language = language.LanguageCode;
100101
CultureInfo.CurrentCulture = new CultureInfo(language.LanguageCode);
101102
CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture;
103+
CurrentCulture = CultureInfo.CurrentCulture;
104+
105+
// Raise event after this.CurrentCulture is set
106+
Settings.Language = language.LanguageCode;
102107
_ = Task.Run(() =>
103108
{
104109
UpdatePluginMetadataTranslations();

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,16 +65,10 @@ public MainViewModel(Settings settings)
6565
Settings = settings;
6666
Settings.PropertyChanged += (_, args) =>
6767
{
68-
if (args.PropertyName == nameof(Settings.WindowSize))
69-
{
70-
}
7168
switch (args.PropertyName) {
7269
case nameof(Settings.WindowSize):
7370
OnPropertyChanged(nameof(MainWindowWidth));
7471
break;
75-
case nameof(Settings.Language):
76-
Culture = new CultureInfo(Settings.Language);
77-
break;
7872
}
7973
};
8074

@@ -106,8 +100,6 @@ public MainViewModel(Settings settings)
106100
RegisterClockAndDateUpdateAsync();
107101

108102
SetOpenResultModifiers();
109-
110-
Culture = new CultureInfo(Settings.Language);
111103
}
112104

113105
private void RegisterViewUpdate()
@@ -343,7 +335,7 @@ private void Esc()
343335
public Settings Settings { get; }
344336
public string ClockText { get; private set; }
345337
public string DateText { get; private set; }
346-
public CultureInfo Culture { get; set; }
338+
public CultureInfo Culture => InternationalizationManager.Instance.CurrentCulture;
347339

348340
private async Task RegisterClockAndDateUpdateAsync()
349341
{

Flow.Launcher/ViewModel/SettingWindowViewModel.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,12 @@ public SettingWindowViewModel(Updater updater, IPortable portable)
5656
OnPropertyChanged(nameof(ClockText));
5757
break;
5858
case nameof(Settings.Language):
59-
Culture = new CultureInfo(Settings.Language);
6059
OnPropertyChanged(nameof(ClockText));
6160
OnPropertyChanged(nameof(DateText));
6261
break;
6362
}
6463
};
6564

66-
Culture = new CultureInfo(Settings.Language);
6765
}
6866

6967
public Settings Settings { get; set; }
@@ -87,7 +85,7 @@ public bool AutoUpdates
8785
}
8886
}
8987

90-
public CultureInfo Culture { get; private set; }
88+
public CultureInfo Culture => InternationalizationManager.Instance.CurrentCulture;
9189

9290
public bool StartFlowLauncherOnSystemStartup
9391
{

0 commit comments

Comments
 (0)