Skip to content

Commit 5a9c631

Browse files
committed
Use PropertyChange event to change text when language has changed.
1 parent c1ca76d commit 5a9c631

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

Flow.Launcher.Core/Resource/Internationalization.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Linq;
55
using System.Reflection;
66
using System.Windows;
7+
using Flow.Launcher;
78
using Flow.Launcher.Core.Plugin;
89
using Flow.Launcher.Infrastructure;
910
using Flow.Launcher.Infrastructure.Logger;
@@ -88,14 +89,14 @@ public void ChangeLanguage(Language language)
8889
{
8990
language = language.NonNull();
9091

91-
Settings.Language = language.LanguageCode;
9292

9393
RemoveOldLanguageFiles();
9494
if (language != AvailableLanguages.English)
9595
{
9696
LoadLanguage(language);
9797
}
9898
UpdatePluginMetadataTranslations();
99+
Settings.Language = language.LanguageCode;
99100

100101
}
101102

Flow.Launcher.Infrastructure/UserSettings/Settings.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,18 @@ namespace Flow.Launcher.Infrastructure.UserSettings
99
{
1010
public class Settings : BaseModel
1111
{
12+
private string language = "en";
13+
1214
public string Hotkey { get; set; } = $"{KeyConstant.Alt} + {KeyConstant.Space}";
1315
public string OpenResultModifiers { get; set; } = KeyConstant.Alt;
1416
public bool ShowOpenResultHotkey { get; set; } = true;
15-
public string Language { get; set; } = "en";
17+
public string Language
18+
{
19+
get => language; set {
20+
language = value;
21+
OnPropertyChanged();
22+
}
23+
}
1624
public string Theme { get; set; } = Constant.DefaultTheme;
1725
public bool UseDropShadowEffect { get; set; } = false;
1826
public string QueryBoxFont { get; set; } = FontFamily.GenericSansSerif.Name;

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@ private void OnClosing(object sender, CancelEventArgs e)
5252

5353
private void OnInitialized(object sender, EventArgs e)
5454
{
55-
// show notify icon when flowlauncher is hided
55+
5656
}
5757

5858
private void OnLoaded(object sender, RoutedEventArgs _)
5959
{
60+
// show notify icon when flowlauncher is hidden
6061
InitializeNotifyIcon();
6162

6263
// todo is there a way to set blur only once?
@@ -88,11 +89,19 @@ private void OnLoaded(object sender, RoutedEventArgs _)
8889
};
8990
_settings.PropertyChanged += (o, e) =>
9091
{
91-
if (e.PropertyName == nameof(Settings.HideNotifyIcon))
92+
switch (e.PropertyName)
9293
{
93-
_notifyIcon.Visible = !_settings.HideNotifyIcon;
94+
case nameof(Settings.HideNotifyIcon):
95+
_notifyIcon.Visible = !_settings.HideNotifyIcon;
96+
break;
97+
case nameof(Settings.Language):
98+
UpdateNotifyIconText();
99+
break;
94100
}
95101
};
102+
103+
104+
96105
InitializePosition();
97106
}
98107

@@ -104,6 +113,18 @@ private void InitializePosition()
104113
_settings.WindowLeft = Left;
105114
}
106115

116+
private void UpdateNotifyIconText()
117+
{
118+
var menu = _notifyIcon.ContextMenuStrip;
119+
var open = menu.Items[0];
120+
var setting = menu.Items[1];
121+
var exit = menu.Items[2];
122+
123+
open.Text = InternationalizationManager.Instance.GetTranslation("iconTrayOpen");
124+
setting.Text = InternationalizationManager.Instance.GetTranslation("iconTraySettings");
125+
exit.Text = InternationalizationManager.Instance.GetTranslation("iconTrayExit");
126+
}
127+
107128
private void InitializeNotifyIcon()
108129
{
109130
_notifyIcon = new NotifyIcon

0 commit comments

Comments
 (0)