namespace LazyBear.MCP.TUI.Localization;

/// <summary>
/// Синглтон, хранящий текущую локаль TUI. Переключение — клавиша L.
/// Компоненты подписываются на OnChanged для перерисовки при смене языка.
/// </summary>
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();
    }
}
