From ef5cf78a037943ba39840b4175bfb0223f6b5b20 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Tue, 8 Apr 2025 10:00:28 +0800 Subject: [PATCH] feat: Add display culture config --- Assets/Cryville.EEW.Unity/Config.cs | 4 ++++ Assets/Cryville.EEW.Unity/SharedSettings.cs | 5 +++++ Assets/Cryville.EEW.Unity/Worker.cs | 1 + 3 files changed, 10 insertions(+) diff --git a/Assets/Cryville.EEW.Unity/Config.cs b/Assets/Cryville.EEW.Unity/Config.cs index 8e68c82..9b2d55b 100644 --- a/Assets/Cryville.EEW.Unity/Config.cs +++ b/Assets/Cryville.EEW.Unity/Config.cs @@ -13,6 +13,8 @@ namespace Cryville.EEW.Unity { bool DoDisplayTimeZone, bool DoSwitchBackToHistory, + string OverrideDisplayCulture, + IReadOnlyCollection EventSources ) { public static Config Default => new( @@ -25,6 +27,8 @@ namespace Cryville.EEW.Unity { true, true, + "", + new List { new JMAAtomEventSourceConfig(Array.Empty()), new UpdateCheckerEventSourceConfig(), diff --git a/Assets/Cryville.EEW.Unity/SharedSettings.cs b/Assets/Cryville.EEW.Unity/SharedSettings.cs index ef38f63..724670f 100644 --- a/Assets/Cryville.EEW.Unity/SharedSettings.cs +++ b/Assets/Cryville.EEW.Unity/SharedSettings.cs @@ -1,4 +1,5 @@ using Cryville.EEW.Colors; +using Cryville.EEW.Core; using Cryville.EEW.Core.Colors; using Cryville.EEW.FERegion; using Cryville.EEW.Map; @@ -27,6 +28,7 @@ namespace Cryville.EEW.Unity { public ISubColorScheme TextColorScheme { get; private set; } = new DefaultTextColorScheme(Color.White, Color.Black); public TimeSpan NowcastWarningDelayTolerance => TimeSpan.FromMinutes(60); // TODO TTS + public CultureInfo RVMCulture { get; private set; } = SharedCultures.CurrentUICulture; readonly int _infoLocationSpecificity = 3; readonly int _ttsLocationSpecificity = 3; readonly LocationNamer _locationNamer = new() { Namer = new FERegionLongNamer() }; // TODO TTS @@ -115,6 +117,9 @@ namespace Cryville.EEW.Unity { OverrideTimeZone = ParseTimeZone(config.OverrideTimeZone); DoDisplayTimeZone = config.DoDisplayTimeZone; DoSwitchBackToHistory = config.DoSwitchBackToHistory; + RVMCulture = config.OverrideDisplayCulture is string rvmCulture + ? (string.IsNullOrEmpty(rvmCulture) ? SharedCultures.CurrentUICulture : SharedCultures.Get(rvmCulture)) + : CultureInfo.InvariantCulture; EventSources = config.EventSources; } diff --git a/Assets/Cryville.EEW.Unity/Worker.cs b/Assets/Cryville.EEW.Unity/Worker.cs index a004b44..c2d53c8 100644 --- a/Assets/Cryville.EEW.Unity/Worker.cs +++ b/Assets/Cryville.EEW.Unity/Worker.cs @@ -64,6 +64,7 @@ namespace Cryville.EEW.Unity { BuildWorkers(); _worker.RVMGeneratorContext = SharedSettings.Instance; _worker.TTSMessageGeneratorContext = SharedSettings.Instance; + _worker.RVMCulture = SharedSettings.Instance.RVMCulture; _ongoingReportManager.Changed += OnOngoingReported; _worker.Reported += OnReported; _grouper.GroupUpdated += OnGroupUpdated;