Skip to content

Commit b8fc0a9

Browse files
Merge pull request #45 from AndrewKeepCoding/sample-app-refactoring
Sample app refactoring
2 parents 8068353 + b3ac875 commit b8fc0a9

File tree

2 files changed

+44
-39
lines changed

2 files changed

+44
-39
lines changed

WinUI3Localizer.SampleApp/App.xaml.cs

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public App()
2626

2727
protected override async void OnLaunched(LaunchActivatedEventArgs args)
2828
{
29-
await InitializeLocalizer();
29+
await InitializeWinUI3Localizer();
3030

3131
this.window = Host.Services.GetRequiredService<MainWindow>();
3232
this.window.Activate();
@@ -107,34 +107,16 @@ private static IHost BuildHost()
107107
.Build();
108108
}
109109

110-
/// <summary>
111-
/// Creates default Resources.resw files for WinUI3Localizer.
112-
/// </summary>
113-
private async Task InitializeLocalizer()
110+
private static async Task InitializeWinUI3Localizer()
114111
{
115112
#if IS_NON_PACKAGED
116-
// Initialize a "Strings" folder in the executables folder.
117-
StringsFolderPath = Path.Combine(AppContext.BaseDirectory, "Strings");
118-
StorageFolder stringsFolder = await StorageFolder.GetFolderFromPathAsync(StringsFolderPath);
113+
PrepareEnvironmentForWinUI3LocalizerOnNonPackagedApp();
119114
#else
120-
// Initialize a "Strings" folder in the "LocalFolder" for the packaged app.
121-
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
122-
StorageFolder stringsFolder = await localFolder.CreateFolderAsync("Strings", CreationCollisionOption.OpenIfExists);
123-
StringsFolderPath = stringsFolder.Path;
124-
125-
// Create string resources file from app resources if doesn't exists.
126-
await MakeSureStringResourceFileExists(stringsFolder, "en-US", "Resources.resw");
127-
await MakeSureStringResourceFileExists(stringsFolder, "en-US", "ErrorMessages.resw");
128-
await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "Resources.resw");
129-
await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "ErrorMessages.resw");
130-
await MakeSureStringResourceFileExists(stringsFolder, "ja", "Resources.resw");
131-
await MakeSureStringResourceFileExists(stringsFolder, "ja", "ErrorMessages.resw");
115+
await PrepareEnvironmentForWinUI3LocalizerOnPackagedApp();
132116
#endif
133117

134-
ILocalizer localizer = await new LocalizerBuilder()
135-
.AddPriResourcesForLanguageDictionaries(new[] { "en-US", "es-ES", "ja" } )
136-
.AddPriResourcesForLanguageDictionaries(new[] { "en-US", "es-ES", "ja" }, "ErrorMessages")
137-
//.AddStringResourcesFolderForLanguageDictionaries(StringsFolderPath)
118+
_ = await new LocalizerBuilder()
119+
.AddStringResourcesFolderForLanguageDictionaries(StringsFolderPath)
138120
//.SetLogger(Host.Services
139121
// .GetRequiredService<ILoggerFactory>()
140122
// .CreateLogger<Localizer>())
@@ -159,4 +141,27 @@ private async Task InitializeLocalizer()
159141
//}))
160142
.Build();
161143
}
162-
}
144+
#if IS_NON_PACKAGED
145+
private static void PrepareEnvironmentForWinUI3LocalizerOnNonPackagedApp()
146+
{
147+
// Initialize a "Strings" folder in the executables folder.
148+
StringsFolderPath = Path.Combine(AppContext.BaseDirectory, "Strings");
149+
}
150+
#else
151+
private static async Task PrepareEnvironmentForWinUI3LocalizerOnPackagedApp()
152+
{
153+
// Initialize a "Strings" folder in the "LocalFolder" for the packaged app.
154+
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
155+
StorageFolder stringsFolder = await localFolder.CreateFolderAsync("Strings", CreationCollisionOption.OpenIfExists);
156+
StringsFolderPath = stringsFolder.Path;
157+
158+
// Create string resources file from app resources if doesn't exists.
159+
await MakeSureStringResourceFileExists(stringsFolder, "en-US", "Resources.resw");
160+
await MakeSureStringResourceFileExists(stringsFolder, "en-US", "ErrorMessages.resw");
161+
await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "Resources.resw");
162+
await MakeSureStringResourceFileExists(stringsFolder, "es-ES", "ErrorMessages.resw");
163+
await MakeSureStringResourceFileExists(stringsFolder, "ja", "Resources.resw");
164+
await MakeSureStringResourceFileExists(stringsFolder, "ja", "ErrorMessages.resw");
165+
}
166+
#endif
167+
}

WinUI3Localizer.SampleApp/WinUI3Localizer.SampleApp.csproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>WinExe</OutputType>
4-
<TargetFramework>net7.0-windows10.0.19041.0</TargetFramework>
4+
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
55
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
66
<RootNamespace>WinUI3Localizer.SampleApp</RootNamespace>
77
<ApplicationManifest>app.manifest</ApplicationManifest>
88
<Platforms>x86;x64;arm64</Platforms>
9-
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
10-
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
9+
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
10+
<PublishProfile>win-$(Platform).pubxml</PublishProfile>
1111
<UseWinUI>true</UseWinUI>
1212
<EnablePreviewMsixTooling>true</EnablePreviewMsixTooling>
1313
<LangVersion>latest</LangVersion>
@@ -43,18 +43,18 @@
4343

4444
<ItemGroup>
4545
<PackageReference Include="ColorCode.WinUI" Version="2.0.15" />
46-
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
46+
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
4747
<PackageReference Include="CommunityToolkit.WinUI.UI.Controls.DataGrid" Version="7.1.2" />
48-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
49-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
50-
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
51-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
52-
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.4.230822000" />
53-
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
54-
<PackageReference Include="Serilog" Version="3.0.1" />
55-
<PackageReference Include="Serilog.Extensions.Hosting" Version="7.0.0" />
56-
<PackageReference Include="Serilog.Extensions.Logging" Version="7.0.0" />
57-
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
48+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
49+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
50+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
51+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
52+
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.240428000" />
53+
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.3233" />
54+
<PackageReference Include="Serilog" Version="3.1.1" />
55+
<PackageReference Include="Serilog.Extensions.Hosting" Version="8.0.0" />
56+
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
57+
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
5858
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
5959
<Manifest Include="$(ApplicationManifest)" />
6060
</ItemGroup>

0 commit comments

Comments
 (0)