From 90de4cc4b986b2e1ea64cdd69baa6ac4db3508a0 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Fri, 3 Oct 2025 18:43:35 +0200 Subject: [PATCH] Added localizer, added de & en localization to /Home/Index and /Home/Login --- src/Program.cs | 13 +++++++++- src/Resources/Views.Home.Index.de.resx | 19 +++++++++++++++ src/Resources/Views.Home.Login.de.resx | 28 ++++++++++++++++++++++ src/Resources/Views.Home.Login.en.resx | 28 ++++++++++++++++++++++ src/Resources/Views.Shared._Layout.de.resx | 22 +++++++++++++++++ src/Resources/Views.Shared._Layout.en.resx | 28 ++++++++++++++++++++++ src/Views/Home/Index.cshtml | 4 +++- src/Views/Home/Login.cshtml | 12 ++++++---- src/Views/Shared/_Layout.cshtml | 8 ++++--- 9 files changed, 152 insertions(+), 10 deletions(-) create mode 100644 src/Resources/Views.Home.Index.de.resx create mode 100644 src/Resources/Views.Home.Login.de.resx create mode 100644 src/Resources/Views.Home.Login.en.resx create mode 100644 src/Resources/Views.Shared._Layout.de.resx create mode 100644 src/Resources/Views.Shared._Layout.en.resx diff --git a/src/Program.cs b/src/Program.cs index 90c5ba2..f5cd5b1 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -10,7 +10,11 @@ var builder = WebApplication.CreateBuilder(args); // Bind options builder.Services.Configure(builder.Configuration.GetSection("Ldap")); -builder.Services.AddControllersWithViews(); +builder.Services.AddLocalization(options => options.ResourcesPath = "Resources"); + +builder.Services.AddControllersWithViews() + .AddViewLocalization(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix) + .AddDataAnnotationsLocalization(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); @@ -53,6 +57,13 @@ app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); +string[] supportedCultures = ["de", "en"]; +var localizationOptions = new RequestLocalizationOptions() + .SetDefaultCulture(supportedCultures.First()) + .AddSupportedCultures(supportedCultures) + .AddSupportedUICultures(supportedCultures); +app.UseRequestLocalization(localizationOptions); + app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); diff --git a/src/Resources/Views.Home.Index.de.resx b/src/Resources/Views.Home.Index.de.resx new file mode 100644 index 0000000..485a026 --- /dev/null +++ b/src/Resources/Views.Home.Index.de.resx @@ -0,0 +1,19 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, ... + + + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + + + + Startseite + + diff --git a/src/Resources/Views.Home.Login.de.resx b/src/Resources/Views.Home.Login.de.resx new file mode 100644 index 0000000..22edd86 --- /dev/null +++ b/src/Resources/Views.Home.Login.de.resx @@ -0,0 +1,28 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, ... + + + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + + + + Abmelden + + + Anmelden + + + Benutzername + + + Passwort + + diff --git a/src/Resources/Views.Home.Login.en.resx b/src/Resources/Views.Home.Login.en.resx new file mode 100644 index 0000000..6d670a1 --- /dev/null +++ b/src/Resources/Views.Home.Login.en.resx @@ -0,0 +1,28 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, ... + + + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + + + + Log out + + + Login + + + Username + + + Password + + diff --git a/src/Resources/Views.Shared._Layout.de.resx b/src/Resources/Views.Shared._Layout.de.resx new file mode 100644 index 0000000..69657e0 --- /dev/null +++ b/src/Resources/Views.Shared._Layout.de.resx @@ -0,0 +1,22 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, ... + + + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + + + + Abmelden + + + Anmelden + + diff --git a/src/Resources/Views.Shared._Layout.en.resx b/src/Resources/Views.Shared._Layout.en.resx new file mode 100644 index 0000000..6d670a1 --- /dev/null +++ b/src/Resources/Views.Shared._Layout.en.resx @@ -0,0 +1,28 @@ + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, ... + + + System.Resources.ResXResourceWriter, System.Windows.Forms, ... + + + + Log out + + + Login + + + Username + + + Password + + diff --git a/src/Views/Home/Index.cshtml b/src/Views/Home/Index.cshtml index 33ecc34..d01d253 100644 --- a/src/Views/Home/Index.cshtml +++ b/src/Views/Home/Index.cshtml @@ -1,5 +1,7 @@ +@using Microsoft.AspNetCore.Mvc.Localization +@inject IViewLocalizer T @{ - ViewData["Title"] = "Home Page"; + ViewData["Title"] = T["Home Page"]; }
diff --git a/src/Views/Home/Login.cshtml b/src/Views/Home/Login.cshtml index 424dc08..ca1e8c2 100644 --- a/src/Views/Home/Login.cshtml +++ b/src/Views/Home/Login.cshtml @@ -1,9 +1,11 @@ +@using Microsoft.AspNetCore.Mvc.Localization +@inject IViewLocalizer T @{ - ViewData["Title"] = "Login"; + ViewData["Title"] = T["Login"]; }
-

Login

+

@T["Login"]

@{ if (Model.ErrorText is not null) { @@ -14,15 +16,15 @@ }
- +
- +
- +
diff --git a/src/Views/Shared/_Layout.cshtml b/src/Views/Shared/_Layout.cshtml index 47d9b15..a3b7f98 100644 --- a/src/Views/Shared/_Layout.cshtml +++ b/src/Views/Shared/_Layout.cshtml @@ -1,4 +1,6 @@ - +@using Microsoft.AspNetCore.Mvc.Localization +@inject IViewLocalizer T + @@ -26,11 +28,11 @@