diff --git a/Wave/Components/App.razor b/Wave/Components/App.razor
index 380e323..ac6016b 100644
--- a/Wave/Components/App.razor
+++ b/Wave/Components/App.razor
@@ -1,5 +1,6 @@
-
-
+@using System.Globalization
+
+
diff --git a/Wave/Components/Pages/Home.razor b/Wave/Components/Pages/Home.razor
index 9001e0b..ca0091d 100644
--- a/Wave/Components/Pages/Home.razor
+++ b/Wave/Components/Pages/Home.razor
@@ -1,7 +1,10 @@
@page "/"
+@using Microsoft.Extensions.Localization
+
+@inject IStringLocalizer Localizer
Home
-Hello, world!
+@Localizer["Greeting"]
Welcome to your new app.
diff --git a/Wave/Program.cs b/Wave/Program.cs
index 3c69275..a695688 100644
--- a/Wave/Program.cs
+++ b/Wave/Program.cs
@@ -11,6 +11,8 @@
// Add services to the container.
builder.Services.AddRazorComponents();
+#region Authentication & Authorization
+
builder.Services.AddCascadingAuthenticationState();
builder.Services.AddScoped();
builder.Services.AddScoped();
@@ -24,6 +26,10 @@
})
.AddIdentityCookies();
+#endregion
+
+#region Identity
+
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext(options =>
options.UseSqlServer(connectionString));
@@ -36,15 +42,22 @@
builder.Services.AddSingleton, IdentityNoOpEmailSender>();
+#endregion
+
+#region Services
+
+builder.Services.AddLocalization(options => {
+ options.ResourcesPath = "Resources";
+});
+
+#endregion
+
var app = builder.Build();
// Configure the HTTP request pipeline.
-if (app.Environment.IsDevelopment())
-{
+if (app.Environment.IsDevelopment()) {
app.UseMigrationsEndPoint();
-}
-else
-{
+} else {
app.UseExceptionHandler("/Error", createScopeForErrors: true);
}
@@ -56,4 +69,13 @@
// Add additional endpoints required by the Identity /Account Razor components.
app.MapAdditionalIdentityEndpoints();
+string[] cultures = ["en-US", "en-GB", "de-DE"];
+app.UseRequestLocalization(new RequestLocalizationOptions {
+ ApplyCurrentCultureToResponseHeaders = true,
+ FallBackToParentCultures = true, FallBackToParentUICultures = true
+ }
+ .SetDefaultCulture(cultures[0])
+ .AddSupportedCultures(cultures)
+ .AddSupportedUICultures(cultures));
+
app.Run();
diff --git a/Wave/Resources/Components/Pages/Home.de-DE.resx b/Wave/Resources/Components/Pages/Home.de-DE.resx
new file mode 100644
index 0000000..535c594
--- /dev/null
+++ b/Wave/Resources/Components/Pages/Home.de-DE.resx
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Hallo Welt!
+
+
\ No newline at end of file
diff --git a/Wave/Resources/Components/Pages/Home.en-GB.resx b/Wave/Resources/Components/Pages/Home.en-GB.resx
new file mode 100644
index 0000000..4fdb1b6
--- /dev/null
+++ b/Wave/Resources/Components/Pages/Home.en-GB.resx
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Wave/Resources/Components/Pages/Home.resx b/Wave/Resources/Components/Pages/Home.resx
new file mode 100644
index 0000000..7011191
--- /dev/null
+++ b/Wave/Resources/Components/Pages/Home.resx
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Hello World!
+
+
\ No newline at end of file