Update window titles on language change

rendering
Liza 2023-02-11 14:31:43 +01:00
parent c7b8e69732
commit 0bec8cf759
5 changed files with 42 additions and 8 deletions

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Pal.Client
{
internal interface ILanguageChanged
{
void LanguageChanged();
}
}

View File

@ -26,6 +26,7 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Pal.Client.Extensions;
using Pal.Client.Properties;
using ECommons;
namespace Pal.Client
{
@ -250,7 +251,10 @@ namespace Pal.Client
}
private void LanguageChanged(string langcode)
=> Localization.Culture = new CultureInfo(langcode);
{
Localization.Culture = new CultureInfo(langcode);
Service.WindowSystem?.Windows.OfType<ILanguageChanged>().Each(w => w.LanguageChanged());
}
private void OnFrameworkUpdate(Framework framework)
{

View File

@ -7,11 +7,12 @@ using Pal.Client.Properties;
namespace Pal.Client.Windows
{
internal class AgreementWindow : Window
internal class AgreementWindow : Window, ILanguageChanged
{
private const string WindowId = "###PalPalaceAgreement";
private int _choice;
public AgreementWindow() : base($"{Localization.Palace_Pal}###PalPalaceAgreement")
public AgreementWindow() : base(WindowId)
{
Flags = ImGuiWindowFlags.NoCollapse;
Size = new Vector2(500, 500);
@ -26,6 +27,9 @@ namespace Pal.Client.Windows
};
}
public void LanguageChanged()
=> WindowName = $"{Localization.Palace_Pal}{WindowId}";
public override void OnOpen()
{
_choice = -1;

View File

@ -24,6 +24,7 @@ namespace Pal.Client.Windows
{
internal class ConfigWindow : Window
{
private const string WindowId = "###PalPalaceConfig";
private int _mode;
private int _renderer;
private bool _showTraps;
@ -45,10 +46,10 @@ namespace Pal.Client.Windows
private FileDialogManager _importDialog;
private FileDialogManager _exportDialog;
public ConfigWindow() : base($"{Localization.Palace_Pal}###PalPalaceConfig")
public ConfigWindow() : base(WindowId)
{
var version = typeof(Plugin).Assembly.GetName().Version!.ToString(2);
WindowName = $"{Localization.Palace_Pal} v{version}###PalPalaceConfig";
LanguageChanged();
Size = new Vector2(500, 400);
SizeCondition = ImGuiCond.FirstUseEver;
Position = new Vector2(300, 300);
@ -58,6 +59,12 @@ namespace Pal.Client.Windows
_exportDialog = new FileDialogManager { AddedWindowFlags = ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoDocking };
}
public void LanguageChanged()
{
var version = typeof(Plugin).Assembly.GetName().Version!.ToString(2);
WindowName = $"{Localization.Palace_Pal} v{version}{WindowId}";
}
public override void OnOpen()
{
var config = Service.Configuration;

View File

@ -14,12 +14,15 @@ using Pal.Client.Properties;
namespace Pal.Client.Windows
{
internal class StatisticsWindow : Window
internal class StatisticsWindow : Window, ILanguageChanged
{
private const string WindowId = "###PalacePalStats";
private SortedDictionary<ETerritoryType, TerritoryStatistics> _territoryStatistics = new();
public StatisticsWindow() : base($"{Localization.Palace_Pal} - {Localization.Statistics}###PalacePalStats")
public StatisticsWindow() : base(WindowId)
{
LanguageChanged();
Size = new Vector2(500, 500);
SizeCondition = ImGuiCond.FirstUseEver;
Flags = ImGuiWindowFlags.AlwaysAutoResize;
@ -30,6 +33,9 @@ namespace Pal.Client.Windows
}
}
public void LanguageChanged()
=> WindowName = $"{Localization.Palace_Pal} - {Localization.Statistics}{WindowId}";
public override void Draw()
{
if (ImGui.BeginTabBar("Tabs"))