From 56a5432922b7482a647490ecd76eeaf9e8f7d6db Mon Sep 17 00:00:00 2001 From: Andrew KeepCoding Date: Mon, 20 May 2024 10:09:24 +0900 Subject: [PATCH 1/3] Make more explicit how to initialize WinUI3Localizer on packaged apps and non-packaged apps --- WinUI3Localizer.SampleApp/App.xaml.cs | 56 ++++++++++++++------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/WinUI3Localizer.SampleApp/App.xaml.cs b/WinUI3Localizer.SampleApp/App.xaml.cs index c8a5550..438ecd2 100644 --- a/WinUI3Localizer.SampleApp/App.xaml.cs +++ b/WinUI3Localizer.SampleApp/App.xaml.cs @@ -5,7 +5,6 @@ using Serilog; using System; using System.IO; -using System.Runtime.CompilerServices; using System.Threading.Tasks; using Windows.Storage; @@ -27,7 +26,7 @@ public App() protected override async void OnLaunched(LaunchActivatedEventArgs args) { - await InitializeLocalizer(); + await InitializeWinUI3Localizer(); this.window = Host.Services.GetRequiredService(); this.window.Activate(); @@ -108,34 +107,16 @@ private static IHost BuildHost() .Build(); } - /// - /// Creates default Resources.resw files for WinUI3Localizer. - /// - private async Task InitializeLocalizer() + private static async Task InitializeWinUI3Localizer() { #if IS_NON_PACKAGED - // Initialize a "Strings" folder in the executables folder. - StringsFolderPath = Path.Combine(AppContext.BaseDirectory, "Strings"); - StorageFolder stringsFolder = await StorageFolder.GetFolderFromPathAsync(StringsFolderPath); + PrepareEnvironmentForWinUI3LocalizerOnNonPackagedApp(); #else - // Initialize a "Strings" folder in the "LocalFolder" for the packaged app. - StorageFolder localFolder = ApplicationData.Current.LocalFolder; - StorageFolder stringsFolder = await localFolder.CreateFolderAsync("Strings", CreationCollisionOption.OpenIfExists); - StringsFolderPath = stringsFolder.Path; - - // Create string resources file from app resources if doesn't exists. - await MakeSureStringResourceFileExists(stringsFolder, "en-US", "Resources.resw"); - await MakeSureStringResourceFileExists(stringsFolder, "en-US", "ErrorMessages.resw"); - await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "Resources.resw"); - await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "ErrorMessages.resw"); - await MakeSureStringResourceFileExists(stringsFolder, "ja", "Resources.resw"); - await MakeSureStringResourceFileExists(stringsFolder, "ja", "ErrorMessages.resw"); + await PrepareEnvironmentForWinUI3LocalizerOnPackagedApp(); #endif - ILocalizer localizer = await new LocalizerBuilder() - .AddPriResourcesForLanguageDictionaries(new[] { "en-US", "es-ES", "ja" } ) - .AddPriResourcesForLanguageDictionaries(new[] { "en-US", "es-ES", "ja" }, "ErrorMessages") - //.AddStringResourcesFolderForLanguageDictionaries(StringsFolderPath) + _ = await new LocalizerBuilder() + .AddStringResourcesFolderForLanguageDictionaries(StringsFolderPath) //.SetLogger(Host.Services // .GetRequiredService() // .CreateLogger()) @@ -160,4 +141,27 @@ private async Task InitializeLocalizer() //})) .Build(); } -} \ No newline at end of file +#if IS_NON_PACKAGED + private static void PrepareEnvironmentForWinUI3LocalizerOnNonPackagedApp() + { + // Initialize a "Strings" folder in the executables folder. + StringsFolderPath = Path.Combine(AppContext.BaseDirectory, "Strings"); + } +#else + private static async Task PrepareEnvironmentForWinUI3LocalizerOnPackagedApp() + { + // Initialize a "Strings" folder in the "LocalFolder" for the packaged app. + StorageFolder localFolder = ApplicationData.Current.LocalFolder; + StorageFolder stringsFolder = await localFolder.CreateFolderAsync("Strings", CreationCollisionOption.OpenIfExists); + StringsFolderPath = stringsFolder.Path; + + // Create string resources file from app resources if doesn't exists. + await MakeSureStringResourceFileExists(stringsFolder, "en-US", "Resources.resw"); + await MakeSureStringResourceFileExists(stringsFolder, "en-US", "ErrorMessages.resw"); + await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "Resources.resw"); + await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "ErrorMessages.resw"); + await MakeSureStringResourceFileExists(stringsFolder, "ja", "Resources.resw"); + await MakeSureStringResourceFileExists(stringsFolder, "ja", "ErrorMessages.resw"); + } +#endif +} From ca712e530d23e75a868097343626eb50c5c8b224 Mon Sep 17 00:00:00 2001 From: Andrew KeepCoding Date: Mon, 20 May 2024 10:15:47 +0900 Subject: [PATCH 2/3] Update NuGet packages --- .../WinUI3Localizer.SampleApp.csproj | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj b/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj index 9c9e671..66261d2 100644 --- a/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj +++ b/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj @@ -43,18 +43,18 @@ - + - - - - - - - - - - + + + + + + + + + + From b3ac875947a0ca18bee182a1bec8ffe3a6ad48dc Mon Sep 17 00:00:00 2001 From: Andrew KeepCoding Date: Mon, 20 May 2024 10:20:02 +0900 Subject: [PATCH 3/3] Update to .NET 8 --- WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj b/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj index 66261d2..928b849 100644 --- a/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj +++ b/WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj @@ -1,13 +1,13 @@ WinExe - net7.0-windows10.0.19041.0 + net8.0-windows10.0.19041.0 10.0.17763.0 WinUI3Localizer.SampleApp app.manifest x86;x64;arm64 - win10-x86;win10-x64;win10-arm64 - win10-$(Platform).pubxml + win-x86;win-x64;win-arm64 + win-$(Platform).pubxml true true latest