namespace LazyBear.MCP.TUI.Localization; /// /// Синглтон, хранящий текущую локаль TUI. Переключение — клавиша L. /// Компоненты подписываются на OnChanged для перерисовки при смене языка. /// public sealed class LocalizationService { private static readonly TuiResources[] All = [TuiResources.En, TuiResources.Ru]; private static readonly string[] Labels = ["EN", "RU"]; private int _index; public TuiResources Current => All[_index]; public string Label => Labels[_index]; public Locale Locale => (Locale)_index; public event Action? OnChanged; public void SwitchNext() { _index = (_index + 1) % All.Length; OnChanged?.Invoke(); } }