private static void InitCulture() { var provider = new JsonLocalizationProvider(); provider.Init(); foreach (var culture in provider.CulturesList) { LocalizationManager.SupportedCultures.Add(culture, provider); } LocalizationManager.CurrentCulture = CultureInfo.CurrentUICulture; }
/// <inheritdoc/> protected override void RegisterTypes(IContainerRegistry containerRegistry) { // Register logging Logger logger = new LoggerConfiguration() .MinimumLevel.Information() .WriteTo.Debug() .WriteTo.File(Consts.LogFilename, rollingInterval: RollingInterval.Infinite, rollOnFileSizeLimit: true, fileSizeLimitBytes: 5 * Consts.Megabyte) .CreateLogger(); containerRegistry.RegisterInstance <ILogger>(logger); AppSettings appSettings = CreateOptions(); containerRegistry.RegisterInstance(appSettings); ThemeManager.Current.ChangeTheme(Current, appSettings.Theme, appSettings.Accent); var paletteHelper = new PaletteHelper(); IBaseTheme baseTheme = MaterialDesignThemes.Wpf.Theme.Dark; if (appSettings.Theme == "Light") { baseTheme = MaterialDesignThemes.Wpf.Theme.Light; } paletteHelper.SetTheme(MaterialDesignThemes.Wpf.Theme.Create(baseTheme, (Color)ColorConverter.ConvertFromString(appSettings.Accent), (Color)ColorConverter.ConvertFromString(appSettings.Accent))); // Register main page and main vm - they are constant containerRegistry.RegisterSingleton <MainWindowViewModel>(); containerRegistry.UseAutomapper(Container); // Register services containerRegistry.RegisterSingleton <ImageService>(); containerRegistry.Register <IDayService, DayService>(); containerRegistry.RegisterSingleton <IContextFactory, ContextFactory>(); // Use instance of provider as singleton for different interfaces var jsonProvider = new JsonLocalizationProvider(); containerRegistry.RegisterInstance <ILocalization>(jsonProvider); containerRegistry.RegisterInstance <ILocalizationProvider>(jsonProvider); containerRegistry.RegisterInstance <ICurrentCultureProvider>(jsonProvider); // If no localization exists or current config is invalid, close application EnsureLocalizationProvided(); // TODO: remove after introducing data migrator DatabaseService dbService = Container.Resolve <DatabaseService>(); dbService.MigrateDatabase(); // Variables affect pages, so we set them beforehand SetStaticVariables(); // Dialog service is constant - we have only one window containerRegistry.RegisterInstance(new DialogService( Container.Resolve <MainWindowViewModel>(), DialogCoordinator.Instance, Container.Resolve <IContainerExtension>(), Container.Resolve <ILocalization>() ) ); // Register pages containerRegistry.RegisterForNavigation <WeekSettingsView>(); containerRegistry.RegisterForNavigation <GeneratedWeekView>(); containerRegistry.RegisterForNavigation <SettingsView>(); containerRegistry.RegisterForNavigation <WeekView>(); containerRegistry.RegisterForNavigation <ShoppingCartView>(); containerRegistry.RegisterForNavigation <RecipeListView>(); containerRegistry.RegisterForNavigation <RecipeView>(); containerRegistry.RegisterForNavigation <IngredientListView>(); containerRegistry.RegisterForNavigation <TagListView>(); }