added multilang and settings

This commit is contained in:
2026-08-08 21:48:16 +05:00
parent 3d614255d8
commit d146fd442a
18 changed files with 1115 additions and 72 deletions
+11 -5
View File
@@ -1,4 +1,5 @@
using System.Windows;
using CursorLang.Models;
using CursorLang.Services;
using CursorLang.ViewModels;
using CursorLang.Views;
@@ -7,7 +8,7 @@ using Microsoft.Extensions.DependencyInjection;
namespace CursorLang;
/// <summary>
/// Композиционный корень: собирает контейнер и запускает главное окно.
/// Композиционный корень: собирает контейнер и запускает окно настроек.
/// </summary>
public partial class App : Application
{
@@ -24,12 +25,13 @@ public partial class App : Application
MainWindow = _services.GetRequiredService<MainWindow>();
MainWindow.Show();
_services.GetRequiredService<IKeyboardLayoutService>().Start();
_services.GetRequiredService<LayoutNotificationCoordinator>().Start();
}
protected override void OnExit(ExitEventArgs e)
{
// Контейнер сам остановит таймеры и закроет окно подсказки
// Контейнер сам остановит таймеры, сохранит настройки
// и закроет окно подсказки
_services?.Dispose();
base.OnExit(e);
}
@@ -37,13 +39,17 @@ public partial class App : Application
private static void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(new KeyboardLayoutOptions());
services.AddSingleton(new PopupOptions());
services.AddSingleton<SettingsService>();
services.AddSingleton(provider => provider.GetRequiredService<SettingsService>().Load());
services.AddSingleton<ILocalizationService, LocalizationService>();
services.AddSingleton<IKeyboardLayoutService, KeyboardLayoutService>();
services.AddSingleton<ILayoutPopupService, LayoutPopupService>();
services.AddSingleton<LayoutNotificationCoordinator>();
services.AddSingleton<LayoutPopupViewModel>();
services.AddSingleton<MainViewModel>();
services.AddSingleton<SettingsViewModel>();
services.AddSingleton<LayoutPopupWindow>();
services.AddSingleton<MainWindow>();