From 2d36de471df1af9d649e0260421278b8590b8260 Mon Sep 17 00:00:00 2001 From: kallievz Date: Thu, 9 Jan 2025 14:43:13 +0200 Subject: [PATCH 1/9] Added some Basic Localization functionality. Added Language Selector Added Some NavMenu translations Fixed issue on Brands and Producsts where View and Delete option was showing in edit screen duplicated. Added Header conformity to Login,SelfRegister and ForgotPassword --- src/Shared/Constants/LanguageCode.cs | 7 + src/Shared/Constants/LocalizationConstants.cs | 17 ++ .../Core/Persistence/DatabaseOptions.cs | 3 +- .../framework/Infrastructure/Extensions.cs | 4 + src/api/server/appsettings.Development.json | 4 +- src/apps/blazor/client/Client.csproj | 1 + .../Dialogs/DeleteConfirmation.razor | 9 +- .../client/Components/Dialogs/Logout.razor | 6 +- .../Components/EntityTable/AddEditModal.razor | 1 - .../Components/EntityTable/EntityTable.razor | 9 +- .../Localization/LanguageSelector.razor | 42 +++++ .../blazor/client/Layout/MainLayout.razor | 2 + src/apps/blazor/client/Layout/NavMenu.razor | 13 +- .../client/Pages/Auth/ForgotPassword.razor | 17 +- src/apps/blazor/client/Pages/Auth/Login.razor | 25 +-- .../client/Pages/Auth/SelfRegister.razor | 35 ++-- .../blazor/client/Pages/Catalog/Brands.razor | 13 +- .../client/Pages/Catalog/Brands.razor.cs | 10 +- .../client/Pages/Catalog/Products.razor | 24 +-- .../client/Pages/Catalog/Products.razor.cs | 17 +- .../blazor/client/Pages/Todos/Todos.razor | 13 +- .../blazor/client/Pages/Todos/Todos.razor.cs | 6 +- src/apps/blazor/client/Program.cs | 19 +- .../Dialogs/DeleteConfirmation.af.resx | 129 ++++++++++++++ .../Dialogs/DeleteConfirmation.en.resx | 129 ++++++++++++++ .../Dialogs/DeleteConfirmation.resx | 132 ++++++++++++++ .../Components/Dialogs/Logout.af.resx | 123 +++++++++++++ .../Components/Dialogs/Logout.en.resx | 126 ++++++++++++++ .../Resources/Components/Dialogs/Logout.resx | 128 ++++++++++++++ .../EntityTable/AddEditModal.af.resx | 126 ++++++++++++++ .../EntityTable/AddEditModal.en.resx | 129 ++++++++++++++ .../Components/EntityTable/AddEditModal.resx | 132 ++++++++++++++ .../client/Resources/Layout/NavMenu.af.resx | 136 +++++++++++++++ .../client/Resources/Layout/NavMenu.en.resx | 136 +++++++++++++++ .../client/Resources/Layout/NavMenu.resx | 140 +++++++++++++++ .../Pages/Auth/ForgotPassword.af.resx | 141 +++++++++++++++ .../Pages/Auth/ForgotPassword.en.resx | 141 +++++++++++++++ .../Resources/Pages/Auth/ForgotPassword.resx | 148 ++++++++++++++++ .../client/Resources/Pages/Auth/Login.af.resx | 153 ++++++++++++++++ .../client/Resources/Pages/Auth/Login.en.resx | 153 ++++++++++++++++ .../client/Resources/Pages/Auth/Login.resx | 164 ++++++++++++++++++ .../Resources/Pages/Auth/SelfRegister.af.resx | 150 ++++++++++++++++ .../Resources/Pages/Auth/SelfRegister.en.resx | 150 ++++++++++++++++ .../Resources/Pages/Auth/SelfRegister.resx | 160 +++++++++++++++++ .../Resources/Pages/Catalog/Brands.af.resx | 138 +++++++++++++++ .../Resources/Pages/Catalog/Brands.en.resx | 138 +++++++++++++++ .../Resources/Pages/Catalog/Brands.resx | 144 +++++++++++++++ .../Resources/Pages/Catalog/Products.af.resx | 150 ++++++++++++++++ .../Resources/Pages/Catalog/Products.en.resx | 150 ++++++++++++++++ .../Resources/Pages/Catalog/Products.resx | 160 +++++++++++++++++ .../Resources/Pages/Todos/Todos.af.resx | 144 +++++++++++++++ .../Resources/Pages/Todos/Todos.en.resx | 144 +++++++++++++++ .../client/Resources/Pages/Todos/Todos.resx | 152 ++++++++++++++++ src/apps/blazor/client/_Imports.razor | 1 + src/apps/blazor/infrastructure/Extensions.cs | 6 + .../Preferences/ClientPreference.cs | 2 + .../Preferences/ClientPreferenceManager.cs | 35 ++-- 57 files changed, 4458 insertions(+), 129 deletions(-) create mode 100644 src/Shared/Constants/LanguageCode.cs create mode 100644 src/Shared/Constants/LocalizationConstants.cs create mode 100644 src/apps/blazor/client/Components/Localization/LanguageSelector.razor create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.af.resx create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.en.resx create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.resx create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/Logout.af.resx create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/Logout.en.resx create mode 100644 src/apps/blazor/client/Resources/Components/Dialogs/Logout.resx create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.en.resx create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.resx create mode 100644 src/apps/blazor/client/Resources/Layout/NavMenu.af.resx create mode 100644 src/apps/blazor/client/Resources/Layout/NavMenu.en.resx create mode 100644 src/apps/blazor/client/Resources/Layout/NavMenu.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/Login.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/Login.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/Login.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Brands.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Brands.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Brands.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Products.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Products.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Catalog/Products.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Todos/Todos.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Todos/Todos.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Todos/Todos.resx diff --git a/src/Shared/Constants/LanguageCode.cs b/src/Shared/Constants/LanguageCode.cs new file mode 100644 index 0000000000..fe21d4669b --- /dev/null +++ b/src/Shared/Constants/LanguageCode.cs @@ -0,0 +1,7 @@ +namespace FSH.Starter.Shared.Constants; + +public class LanguageCode +{ + public string DisplayName { get; set; } + public string Code { get; set; } +} diff --git a/src/Shared/Constants/LocalizationConstants.cs b/src/Shared/Constants/LocalizationConstants.cs new file mode 100644 index 0000000000..5e94016220 --- /dev/null +++ b/src/Shared/Constants/LocalizationConstants.cs @@ -0,0 +1,17 @@ +namespace FSH.Starter.Shared.Constants; + +public static class LocalizationConstants +{ + public static readonly LanguageCode[] SupportedLanguages = { + new LanguageCode + { + Code = "en-US", + DisplayName= "English" + }, + new LanguageCode + { + Code = "af-ZA", + DisplayName = "Afrikaans" + } + }; +} diff --git a/src/api/framework/Core/Persistence/DatabaseOptions.cs b/src/api/framework/Core/Persistence/DatabaseOptions.cs index 5be4fb9e02..459dc30c6a 100644 --- a/src/api/framework/Core/Persistence/DatabaseOptions.cs +++ b/src/api/framework/Core/Persistence/DatabaseOptions.cs @@ -1,9 +1,10 @@ using System.ComponentModel.DataAnnotations; namespace FSH.Framework.Core.Persistence; + public class DatabaseOptions : IValidatableObject { - public string Provider { get; set; } = "postgresql"; + public string Provider { get; set; } = "mssql"; public string ConnectionString { get; set; } = string.Empty; public IEnumerable Validate(ValidationContext validationContext) diff --git a/src/api/framework/Infrastructure/Extensions.cs b/src/api/framework/Infrastructure/Extensions.cs index 865bce172d..26a60dd794 100644 --- a/src/api/framework/Infrastructure/Extensions.cs +++ b/src/api/framework/Infrastructure/Extensions.cs @@ -37,6 +37,10 @@ public static WebApplicationBuilder ConfigureFshFramework(this WebApplicationBui builder.AddServiceDefaults(); builder.ConfigureSerilog(); builder.ConfigureDatabase(); + builder.Services.AddLocalization(options => + { + options.ResourcesPath = "Resources"; + }); builder.Services.ConfigureMultitenancy(); builder.Services.ConfigureIdentity(); builder.Services.AddCorsPolicy(builder.Configuration); diff --git a/src/api/server/appsettings.Development.json b/src/api/server/appsettings.Development.json index e4ff07d0c1..6090b07d4f 100644 --- a/src/api/server/appsettings.Development.json +++ b/src/api/server/appsettings.Development.json @@ -1,7 +1,7 @@ { "DatabaseOptions": { - "Provider": "postgresql", - "ConnectionString": "Server=192.168.1.110;Database=fullstackherodb;User Id=postgres;Password=password" + "Provider": "mssql", + "ConnectionString": "Data Source=KALLIE-LT\\SQL2019;Integrated Security=True;User ID=KALLIE-LT\\Kallie;Database=RUMAS_Q;TrustServerCertificate=True;" }, "OriginOptions": { "OriginUrl": "https://localhost:7000" diff --git a/src/apps/blazor/client/Client.csproj b/src/apps/blazor/client/Client.csproj index 9b732733b7..027b279920 100644 --- a/src/apps/blazor/client/Client.csproj +++ b/src/apps/blazor/client/Client.csproj @@ -7,6 +7,7 @@ FSH.Starter.Blazor.Client FSH.Starter.Blazor.Client service-worker-assets.js + true diff --git a/src/apps/blazor/client/Components/Dialogs/DeleteConfirmation.razor b/src/apps/blazor/client/Components/Dialogs/DeleteConfirmation.razor index da39f64132..ee27acdec8 100644 --- a/src/apps/blazor/client/Components/Dialogs/DeleteConfirmation.razor +++ b/src/apps/blazor/client/Components/Dialogs/DeleteConfirmation.razor @@ -1,16 +1,17 @@ - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + - Delete Confirmation + @_localizer["Delete Confirmation"] @ContentText - Cancel - Confirm + @_localizer["Cancel"] + @_localizer["Confirm"] diff --git a/src/apps/blazor/client/Components/Dialogs/Logout.razor b/src/apps/blazor/client/Components/Dialogs/Logout.razor index 202ac8717f..91a93088be 100644 --- a/src/apps/blazor/client/Components/Dialogs/Logout.razor +++ b/src/apps/blazor/client/Components/Dialogs/Logout.razor @@ -1,5 +1,5 @@ @namespace FSH.Starter.Blazor.Client.Components.Dialogs - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @inject IAuthenticationService AuthService @@ -7,14 +7,14 @@ - Logout Confirmation + @_localizer["Logout Confirmation"] @ContentText - Cancel + @_localizer["Cancel"] @ButtonText diff --git a/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor b/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor index 4d18b0f3c5..ad0f28ba75 100644 --- a/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor +++ b/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor @@ -44,6 +44,5 @@ } - \ No newline at end of file diff --git a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor index cad1b9b48e..6204120f53 100644 --- a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor +++ b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor @@ -1,4 +1,5 @@ -@typeparam TEntity + +@typeparam TEntity @typeparam TId @typeparam TRequest @@ -12,7 +13,6 @@ - @if (_canSearch && (Context.AdvancedSearchEnabled || AdvancedSearchContent is not null)) { } *@ @AdvancedSearchContent - } -
@if (_canCreate) @@ -136,13 +134,10 @@ } - - - diff --git a/src/apps/blazor/client/Components/Localization/LanguageSelector.razor b/src/apps/blazor/client/Components/Localization/LanguageSelector.razor new file mode 100644 index 0000000000..d6bfa4331d --- /dev/null +++ b/src/apps/blazor/client/Components/Localization/LanguageSelector.razor @@ -0,0 +1,42 @@ +@using FSH.Starter.Shared.Constants +@using FSH.Starter.Blazor.Infrastructure.Preferences; +@inject Microsoft.Extensions.Localization.IStringLocalizer L + + + @foreach (var language in LocalizationConstants.SupportedLanguages) + { + if (language.Code == CurrentLanguage) + { + @L[language.DisplayName] + } + else + { + @L[language.DisplayName] + } + } + + + +@code { + public string? CurrentLanguage { get; set; } = "en-US"; + + protected override async Task OnInitializedAsync() + { + var currentPreference = await ClientPreferences.GetPreference() as ClientPreference; + if (currentPreference != null) + { + CurrentLanguage = currentPreference.LanguageCode; + } + else + { + CurrentLanguage = "en-US"; + } + + } + private async Task ChangeLanguageAsync(string languageCode) + { + var result = await ClientPreferences.ChangeLanguageAsync(languageCode); + Navigation.NavigateTo(Navigation.Uri, forceLoad: true); + } +} \ No newline at end of file diff --git a/src/apps/blazor/client/Layout/MainLayout.razor b/src/apps/blazor/client/Layout/MainLayout.razor index 520832e8cb..ea2ffc88c2 100644 --- a/src/apps/blazor/client/Layout/MainLayout.razor +++ b/src/apps/blazor/client/Layout/MainLayout.razor @@ -8,6 +8,7 @@ + Sponsor @@ -36,6 +37,7 @@ + diff --git a/src/apps/blazor/client/Layout/NavMenu.razor b/src/apps/blazor/client/Layout/NavMenu.razor index 86ab42d0d2..cf9bf583d5 100644 --- a/src/apps/blazor/client/Layout/NavMenu.razor +++ b/src/apps/blazor/client/Layout/NavMenu.razor @@ -1,14 +1,15 @@ - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + - Start - Home + @_localizer["Start"] + @_localizer["Home"] Counter @if (_canViewAuditTrails) { - Audit Trail + @_localizer["Audit Trail"] } - Modules - + @_localizer["Modules"] + Products Brands diff --git a/src/apps/blazor/client/Pages/Auth/ForgotPassword.razor b/src/apps/blazor/client/Pages/Auth/ForgotPassword.razor index e2b35c86af..b5422efc02 100644 --- a/src/apps/blazor/client/Pages/Auth/ForgotPassword.razor +++ b/src/apps/blazor/client/Pages/Auth/ForgotPassword.razor @@ -1,21 +1,17 @@ @page "/forgot-password" @attribute [AllowAnonymous] +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer -Forgot Password + - + -
- Forgot Password? - - We can help you by resetting your password. -
@@ -23,11 +19,11 @@ - - @@ -35,7 +31,8 @@ - Forgot Password + @_localizer["ForgotPassword"] +
\ No newline at end of file diff --git a/src/apps/blazor/client/Pages/Auth/Login.razor b/src/apps/blazor/client/Pages/Auth/Login.razor index ed00d61dba..c88d6633c8 100644 --- a/src/apps/blazor/client/Pages/Auth/Login.razor +++ b/src/apps/blazor/client/Pages/Auth/Login.razor @@ -1,46 +1,39 @@ @page "/login" @attribute [AllowAnonymous] @inject IAuthenticationService authService +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer -Login + -
- Sign In - - Enter your credentials to get started. - -
-
- - - - - Register? + @_localizer["Register?"] - Forgot password? + @_localizer["Forgot password?"] Sign In + Color="Color.Primary" DropShadow="false" Size="Size.Large" StartIcon="@Icons.Material.Filled.Login" Style="width: 100%;">@_localizer["Sign In"] - Fill Administrator Credentials + @_localizer["Fill Administrator Credentials"] \ No newline at end of file diff --git a/src/apps/blazor/client/Pages/Auth/SelfRegister.razor b/src/apps/blazor/client/Pages/Auth/SelfRegister.razor index 82f71886ce..9272a345bb 100644 --- a/src/apps/blazor/client/Pages/Auth/SelfRegister.razor +++ b/src/apps/blazor/client/Pages/Auth/SelfRegister.razor @@ -1,23 +1,16 @@ @page "/register" @attribute [AllowAnonymous] - -Register +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + - + -
-
- - Register - - Enter your details below to set up your new account -
@@ -25,38 +18,36 @@ - - - - - - - - - + - - + @@ -64,7 +55,7 @@ - Register + @_localizer["Register"]
diff --git a/src/apps/blazor/client/Pages/Catalog/Brands.razor b/src/apps/blazor/client/Pages/Catalog/Brands.razor index e805ff3798..91b006b8ff 100644 --- a/src/apps/blazor/client/Pages/Catalog/Brands.razor +++ b/src/apps/blazor/client/Pages/Catalog/Brands.razor @@ -1,6 +1,7 @@ @page "/catalog/brands" +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer - + @@ -12,16 +13,16 @@ @if (!Context.AddEditModal.IsCreate) { - + } - + - + - +@*
@if(!Context.AddEditModal.IsCreate) @@ -38,7 +39,7 @@ }
-
+
*@
diff --git a/src/apps/blazor/client/Pages/Catalog/Brands.razor.cs b/src/apps/blazor/client/Pages/Catalog/Brands.razor.cs index 846f2985f4..5e4060cfb8 100644 --- a/src/apps/blazor/client/Pages/Catalog/Brands.razor.cs +++ b/src/apps/blazor/client/Pages/Catalog/Brands.razor.cs @@ -17,14 +17,14 @@ public partial class Brands protected override void OnInitialized() => Context = new( - entityName: "Brand", - entityNamePlural: "Brands", + entityName: @_localizer["Brand"], + entityNamePlural: @_localizer["Brands"], entityResource: FshResources.Brands, fields: new() { - new(brand => brand.Id, "Id", "Id"), - new(brand => brand.Name, "Name", "Name"), - new(brand => brand.Description, "Description", "Description") + new(brand => brand.Id,_localizer["Id"], "Id"), + new(brand => brand.Name, _localizer["Name"], "Name"), + new(brand => brand.Description, _localizer["Description"], "Description") }, enableAdvancedSearch: true, idFunc: brand => brand.Id!.Value, diff --git a/src/apps/blazor/client/Pages/Catalog/Products.razor b/src/apps/blazor/client/Pages/Catalog/Products.razor index f3cb893b1d..7559a1a035 100644 --- a/src/apps/blazor/client/Pages/Catalog/Products.razor +++ b/src/apps/blazor/client/Pages/Catalog/Products.razor @@ -1,11 +1,11 @@ @page "/catalog/products" - - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + - + All Brands @foreach (var brand in _brands) { @@ -20,45 +20,45 @@ @if (!Context.AddEditModal.IsCreate) { - + } - + - - + - + @foreach (var brand in _brands) { @brand.Name } - +@*
@if(!Context.AddEditModal.IsCreate) { - View + @_localizer["View"] - Delete + @_localizer["Delete"] }
-
+
*@
\ No newline at end of file diff --git a/src/apps/blazor/client/Pages/Catalog/Products.razor.cs b/src/apps/blazor/client/Pages/Catalog/Products.razor.cs index 46266197cd..74b45137a7 100644 --- a/src/apps/blazor/client/Pages/Catalog/Products.razor.cs +++ b/src/apps/blazor/client/Pages/Catalog/Products.razor.cs @@ -20,16 +20,16 @@ public partial class Products protected override async Task OnInitializedAsync() { Context = new( - entityName: "Product", - entityNamePlural: "Products", + entityName: _localizer["Product"], + entityNamePlural: _localizer["Products"], entityResource: FshResources.Products, fields: new() { - new(prod => prod.Id,"Id", "Id"), - new(prod => prod.Name,"Name", "Name"), - new(prod => prod.Description, "Description", "Description"), - new(prod => prod.Price, "Price", "Price"), - new(prod => prod.Brand?.Name, "Brand", "Brand") + new(prod => prod.Id,_localizer["Id"], "Id"), + new(prod => prod.Name,_localizer["Name"], "Name"), + new(prod => prod.Description, _localizer["Description"], "Description"), + new(prod => prod.Price, _localizer["Price"], "Price"), + new(prod => prod.Brand?.Name, _localizer["Brand"], "Brand") }, enableAdvancedSearch: true, idFunc: prod => prod.Id!.Value, @@ -70,6 +70,7 @@ private async Task LoadBrandsAsync() // Advanced Search private Guid? _searchBrandId; + private Guid? SearchBrandId { get => _searchBrandId; @@ -81,6 +82,7 @@ private Guid? SearchBrandId } private decimal _searchMinimumRate; + private decimal SearchMinimumRate { get => _searchMinimumRate; @@ -92,6 +94,7 @@ private decimal SearchMinimumRate } private decimal _searchMaximumRate = 9999; + private decimal SearchMaximumRate { get => _searchMaximumRate; diff --git a/src/apps/blazor/client/Pages/Todos/Todos.razor b/src/apps/blazor/client/Pages/Todos/Todos.razor index 9c3ce5d704..70719ac576 100644 --- a/src/apps/blazor/client/Pages/Todos/Todos.razor +++ b/src/apps/blazor/client/Pages/Todos/Todos.razor @@ -1,20 +1,21 @@ @page "/todos" +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer - + @if (!Context.AddEditModal.IsCreate) { - + } - + - + @@ -23,12 +24,12 @@ { - View + @_localizer["View"] - Delete + @_localizer["Delete"] }
diff --git a/src/apps/blazor/client/Pages/Todos/Todos.razor.cs b/src/apps/blazor/client/Pages/Todos/Todos.razor.cs index dfc6111c5c..4266691c53 100644 --- a/src/apps/blazor/client/Pages/Todos/Todos.razor.cs +++ b/src/apps/blazor/client/Pages/Todos/Todos.razor.cs @@ -22,9 +22,9 @@ protected override void OnInitialized() => entityResource: FshResources.Todos, fields: new() { - new(prod => prod.Id,"Id", "Id"), - new(prod => prod.Title,"Title", "Title"), - new(prod => prod.Note, "Note", "Note") + new(prod => prod.Id, _localizer["Id"], "Id"), + new(prod => prod.Title, _localizer["Title"], "Title" ), + new(prod => prod.Note, _localizer["Note"], "Note") }, enableAdvancedSearch: false, idFunc: prod => prod.Id!.Value, diff --git a/src/apps/blazor/client/Program.cs b/src/apps/blazor/client/Program.cs index c1026795e2..d3020ae607 100644 --- a/src/apps/blazor/client/Program.cs +++ b/src/apps/blazor/client/Program.cs @@ -1,5 +1,8 @@ +using System.Globalization; using FSH.Starter.Blazor.Client; using FSH.Starter.Blazor.Infrastructure; +using FSH.Starter.Blazor.Infrastructure.Preferences; +using FSH.Starter.Shared.Constants; using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; @@ -8,4 +11,18 @@ builder.RootComponents.Add("head::after"); builder.Services.AddClientServices(builder.Configuration); -await builder.Build().RunAsync(); +var host = builder.Build(); + +var storageService = host.Services.GetRequiredService(); +if (storageService != null) +{ + CultureInfo culture; + if (await storageService.GetPreference() is ClientPreference preference) + culture = new CultureInfo(preference.LanguageCode); + else + culture = new CultureInfo(LocalizationConstants.SupportedLanguages.FirstOrDefault()?.Code ?? "en-US"); + CultureInfo.DefaultThreadCurrentCulture = culture; + CultureInfo.DefaultThreadCurrentUICulture = culture; +} + +await host.RunAsync(); diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.af.resx b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.af.resx new file mode 100644 index 0000000000..49c29ce4e3 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.af.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kanseleer + + + Bevestig + + + Skrap bevestiging + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.en.resx b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.en.resx new file mode 100644 index 0000000000..ad5c1a2bd7 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.en.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + + + Confirm + + + Delete Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.resx b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.resx new file mode 100644 index 0000000000..8b2665a194 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/DeleteConfirmation.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + Cancel + + + Confirm + Confirm + + + Delete Confirmation + Delete Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/Logout.af.resx b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.af.resx new file mode 100644 index 0000000000..21e9c028ff --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.af.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Afmeld bevestiging + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/Logout.en.resx b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.en.resx new file mode 100644 index 0000000000..2bb3110289 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.en.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + + + Logout Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/Dialogs/Logout.resx b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.resx new file mode 100644 index 0000000000..c9217c8207 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/Dialogs/Logout.resx @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + Cancel + + + Logout Confirmation + Logout Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx new file mode 100644 index 0000000000..6e510a8546 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kanseleer + + + Stoor + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.en.resx b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.en.resx new file mode 100644 index 0000000000..52446a2d36 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.en.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + + + Save + + + Update + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.resx b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.resx new file mode 100644 index 0000000000..b183571984 --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + Cancel + + + Save + Save + + + Update + Update + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx new file mode 100644 index 0000000000..7b63e21fce --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Audit Trail + + + Katalogus + + + Tuis + + + Modules + + + Begin + Start + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx new file mode 100644 index 0000000000..aeda977c41 --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Audit Trail + + + Catalog + + + Home + + + Modules + + + Start + Start + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.resx new file mode 100644 index 0000000000..3b32230cfe --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.resx @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Audit Trail + Audit Trail + + + Catalog + Catalog + + + Home + Home + + + Modules + Modules + + + Start + Start + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.af.resx b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.af.resx new file mode 100644 index 0000000000..787eb3f927 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.af.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-pos + + + Wagwoord Vergeet + + + Gaan Terug + + + Wagwoord Vergeet? + + + Kan ons help om nuwe wagwoord te skep? + + + Huurder + + + Wagwoord Vergeet + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.en.resx b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.en.resx new file mode 100644 index 0000000000..33e86f0a0f --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.en.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-mail + + + Forgot Password + + + Go Back + + + Forgot Password? + + + We can help you by resetting your password. + + + Tenant + + + Forgot Password + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.resx b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.resx new file mode 100644 index 0000000000..cc8ab08656 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/ForgotPassword.resx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-mail + E-mail + + + ForgotPassword + ForgotPassword + + + GoBack + GoBack + + + Header + Header + + + SubHeader + SubHeader + + + Tenant + Tenant + + + Forgot Password + Forgot Password + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/Login.af.resx b/src/apps/blazor/client/Resources/Pages/Auth/Login.af.resx new file mode 100644 index 0000000000..d3ea7f850b --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/Login.af.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-pos + + + Vul Administreeder verwysing + + + Wagwoord vergeet? + + + Sleutel In + + + Sleutel In + + + Wagwoord + + + Registreer? + + + Sleutel In + + + Sleutel verwysings in om te begin. + + + Huurder + + + Sleutel In + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/Login.en.resx b/src/apps/blazor/client/Resources/Pages/Auth/Login.en.resx new file mode 100644 index 0000000000..f3773706f6 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/Login.en.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-mail + + + Fill Administrator Credentials + + + Forgot password? + + + Login + + + Sign In + + + Password + + + Register? + + + Sign In + + + Enter your credentials to get started. + + + Tenant + + + Login + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/Login.resx b/src/apps/blazor/client/Resources/Pages/Auth/Login.resx new file mode 100644 index 0000000000..848f465681 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/Login.resx @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + E-mail + E-mail + + + Fill Administrator Credentials + Fill Administrator Credentials + + + Forgot password? + Forgot password? + + + Header + Header + + + Login + Login + + + Password + Password + + + Register? + Register? + + + Sign In + Sign In + + + SubHeader + SubHeader + + + Tenant + Tenant + + + Title + Title + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.af.resx b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.af.resx new file mode 100644 index 0000000000..81cadc53ce --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.af.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bevestig wagwoord + + + E-pos + + + Voer jou besonderhede hieronder in om jou nuwe rekening op te stel + + + Voorname + + + Gaan Terug + + + Van + + + Wagwoord + + + Registreer + + + Huurder + + + Gebruiker Naam + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.en.resx b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.en.resx new file mode 100644 index 0000000000..1f9367a5c6 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.en.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Confirm Password + + + E-mail + + + Enter your details below to set up your new account + + + First Name + + + Go Back + + + Last Name + + + Password + + + Register + + + Tenant + + + User Name + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.resx b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.resx new file mode 100644 index 0000000000..a83e29dc76 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Auth/SelfRegister.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Confirm Password + Confirm Password + + + E-mail + E-mail + + + Enter your details below to set up your new account + Enter your details below to set up your new account + + + First Name + First Name + + + Go Back + Go Back + + + Last Name + Last Name + + + Password + Password + + + Register + Register + + + Tenant + Tenant + + + User Name + User Name + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Brands.af.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.af.resx new file mode 100644 index 0000000000..af5d471a99 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.af.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Handelsmerk + + + Handelsmerke + + + Beskrywing + + + Id + + + Bestuur Handelsmerke + + + Naam + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Brands.en.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.en.resx new file mode 100644 index 0000000000..189038f5ac --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.en.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Brand + + + Brands + + + Description + + + Id + + + Manage your Brands. + + + Name + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Brands.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.resx new file mode 100644 index 0000000000..7a82bc721c --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Brands.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Brand + Brand + + + Brands + Brands + + + Description + Description + + + Id + Id + + + Manage your Brands. + Manage your Brands. + + + Name + Name + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Products.af.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Products.af.resx new file mode 100644 index 0000000000..02f5719f91 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Products.af.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Handelsmerk + + + Verwyder + + + Beskrywing + + + Id + + + Bestuur Produkte. + + + Naam + + + Prys + + + Produk + + + Produkte + + + Besigtig + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Products.en.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Products.en.resx new file mode 100644 index 0000000000..18b09840c9 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Products.en.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Brand + + + Delete + + + Description + + + Id + + + Manage your Products. + + + Name + + + Price + + + Product + + + Products + + + View + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Catalog/Products.resx b/src/apps/blazor/client/Resources/Pages/Catalog/Products.resx new file mode 100644 index 0000000000..7c7f93c825 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Catalog/Products.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Brand + Brand + + + Delete + Delete + + + Description + Description + + + Id + Id + + + Manage your Products. + Manage your Products. + + + Name + Name + + + Price + Price + + + Product + Product + + + Products + Products + + + View + View + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Todos/Todos.af.resx b/src/apps/blazor/client/Resources/Pages/Todos/Todos.af.resx new file mode 100644 index 0000000000..03b83972be --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Todos/Todos.af.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Verwyder + + + Te Doen + + + Id + + + Naam + + + Nota + + + Bestuur Te-Doens. + + + Te Doen + + + Bekyk + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Todos/Todos.en.resx b/src/apps/blazor/client/Resources/Pages/Todos/Todos.en.resx new file mode 100644 index 0000000000..fb162bf188 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Todos/Todos.en.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Delete + + + Todos + + + Identifier + + + Name + + + Note + + + Manage your Todos. + + + Todos + + + View + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Todos/Todos.resx b/src/apps/blazor/client/Resources/Pages/Todos/Todos.resx new file mode 100644 index 0000000000..66d33074d0 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Todos/Todos.resx @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Delete + Delete + + + Header + Header + + + Id + Id + + + Name + Name + + + Note + Note + + + SubHeader + SubHeader + + + Title + Todos + + + View + View + + \ No newline at end of file diff --git a/src/apps/blazor/client/_Imports.razor b/src/apps/blazor/client/_Imports.razor index 198b0183ed..5f7ffa7d00 100644 --- a/src/apps/blazor/client/_Imports.razor +++ b/src/apps/blazor/client/_Imports.razor @@ -13,6 +13,7 @@ @using FSH.Starter.Blazor.Client.Components @using FSH.Starter.Blazor.Client.Components.General @using FSH.Starter.Blazor.Client.Components.Dialogs +@using FSH.Starter.Blazor.Client.Components.Localization @using FSH.Starter.Blazor.Client.Components.Common @using FSH.Starter.Blazor.Client.Components.EntityTable @using FSH.Starter.Blazor.Infrastructure.Auth diff --git a/src/apps/blazor/infrastructure/Extensions.cs b/src/apps/blazor/infrastructure/Extensions.cs index 10adc054a0..4ae26bf124 100644 --- a/src/apps/blazor/infrastructure/Extensions.cs +++ b/src/apps/blazor/infrastructure/Extensions.cs @@ -11,9 +11,11 @@ using MudBlazor.Services; namespace FSH.Starter.Blazor.Infrastructure; + public static class Extensions { private const string ClientName = "FullStackHero.API"; + public static IServiceCollection AddClientServices(this IServiceCollection services, IConfiguration config) { services.AddMudServices(configuration => @@ -25,6 +27,10 @@ public static IServiceCollection AddClientServices(this IServiceCollection servi configuration.SnackbarConfiguration.ShowCloseIcon = false; }); services.AddBlazoredLocalStorage(); + services.AddLocalization(options => + { + options.ResourcesPath = "Resources"; + }); services.AddAuthentication(config); services.AddTransient(); services.AddHttpClient(ClientName, client => diff --git a/src/apps/blazor/infrastructure/Preferences/ClientPreference.cs b/src/apps/blazor/infrastructure/Preferences/ClientPreference.cs index 0003635571..70b6925c58 100644 --- a/src/apps/blazor/infrastructure/Preferences/ClientPreference.cs +++ b/src/apps/blazor/infrastructure/Preferences/ClientPreference.cs @@ -1,4 +1,5 @@ using FSH.Starter.Blazor.Infrastructure.Themes; +using FSH.Starter.Shared.Constants; namespace FSH.Starter.Blazor.Infrastructure.Preferences; @@ -10,5 +11,6 @@ public class ClientPreference : IPreference public string PrimaryColor { get; set; } = CustomColors.Light.Primary; public string SecondaryColor { get; set; } = CustomColors.Light.Secondary; public double BorderRadius { get; set; } = 5; + public string LanguageCode { get; set; } = LocalizationConstants.SupportedLanguages.FirstOrDefault()?.Code ?? "en-US"; public FshTablePreference TablePreference { get; set; } = new FshTablePreference(); } diff --git a/src/apps/blazor/infrastructure/Preferences/ClientPreferenceManager.cs b/src/apps/blazor/infrastructure/Preferences/ClientPreferenceManager.cs index bd11448a53..b3d1d47576 100644 --- a/src/apps/blazor/infrastructure/Preferences/ClientPreferenceManager.cs +++ b/src/apps/blazor/infrastructure/Preferences/ClientPreferenceManager.cs @@ -1,6 +1,7 @@ using System.Text.RegularExpressions; using Blazored.LocalStorage; using FSH.Starter.Blazor.Infrastructure.Themes; +using FSH.Starter.Shared.Constants; using MudBlazor; namespace FSH.Starter.Blazor.Infrastructure.Preferences; @@ -53,23 +54,23 @@ public async Task ToggleLayoutDirectionAsync() public async Task ChangeLanguageAsync(string languageCode) { - //if (await GetPreference() is ClientPreference preference) - //{ - // var language = Array.Find(LocalizationConstants.SupportedLanguages, a => a.Code == languageCode); - // if (language?.Code is not null) - // { - // preference.LanguageCode = language.Code; - // preference.IsRTL = language.IsRTL; - // } - // else - // { - // preference.LanguageCode = "en-EN"; - // preference.IsRTL = false; - // } - - // await SetPreference(preference); - // return true; - //} + if (await GetPreference() is ClientPreference preference) + { + var language = Array.Find(LocalizationConstants.SupportedLanguages, a => a.Code == languageCode); + if (language?.Code is not null) + { + preference.LanguageCode = language.Code; + //preference.IsRTL = language.IsRTL; + } + else + { + preference.LanguageCode = "en-US"; + //preference.IsRTL = false; + } + + await SetPreference(preference); + return true; + } return false; } From c74d6befedd241a1dd9fea6ce74e216baff27c84 Mon Sep 17 00:00:00 2001 From: kallievz Date: Thu, 9 Jan 2025 19:39:12 +0200 Subject: [PATCH 2/9] Expand NavMenu.resx Add MainLayout.resx --- .../blazor/client/Layout/MainLayout.razor | 57 +++---- src/apps/blazor/client/Layout/NavMenu.razor | 14 +- .../EntityTable/AddEditModal.af.resx | 3 + .../Resources/Layout/MainLayout.af.resx | 138 +++++++++++++++++ .../Resources/Layout/MainLayout.en.resx | 138 +++++++++++++++++ .../client/Resources/Layout/MainLayout.resx | 144 ++++++++++++++++++ .../client/Resources/Layout/NavMenu.af.resx | 22 ++- .../client/Resources/Layout/NavMenu.en.resx | 22 ++- .../client/Resources/Layout/NavMenu.resx | 28 ++++ src/apps/blazor/infrastructure/Extensions.cs | 1 - .../Preferences/IClientPreferenceManager.cs | 2 + .../Preferences/IPreferenceManager.cs | 2 +- 12 files changed, 526 insertions(+), 45 deletions(-) create mode 100644 src/apps/blazor/client/Resources/Layout/MainLayout.af.resx create mode 100644 src/apps/blazor/client/Resources/Layout/MainLayout.en.resx create mode 100644 src/apps/blazor/client/Resources/Layout/MainLayout.resx diff --git a/src/apps/blazor/client/Layout/MainLayout.razor b/src/apps/blazor/client/Layout/MainLayout.razor index ea2ffc88c2..5eb160521b 100644 --- a/src/apps/blazor/client/Layout/MainLayout.razor +++ b/src/apps/blazor/client/Layout/MainLayout.razor @@ -1,64 +1,53 @@ - - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + + - - fullstackhero - + fullstackhero - Sponsor + @_localizer["Sponsor"] + - + - Community + @_localizer["Community"] Discord - Facebook - + Facebook LinkedIn - Buy Me a Coffee! - - Open Collective - + Buy Me a Coffee! + Open Collective Resources - Documentation - + FSH Documentation - + - - + +
- - + +
- Community + @_localizer["Community"] Discord - Facebook - + Facebook HrefedIn Resources - - MudBlazor Documentation - - Quick-Start Guide + MudBlazor Documentation + Quick-Start Guide
@@ -70,7 +59,7 @@
- Account + @_localizer["Account"]
@@ -82,7 +71,7 @@
- Logout + @_localizer["Logout"]
diff --git a/src/apps/blazor/client/Layout/NavMenu.razor b/src/apps/blazor/client/Layout/NavMenu.razor index cf9bf583d5..abde789d57 100644 --- a/src/apps/blazor/client/Layout/NavMenu.razor +++ b/src/apps/blazor/client/Layout/NavMenu.razor @@ -10,24 +10,24 @@ } @_localizer["Modules"] - Products - Brands + @_localizer["Products"] + @_localizer["Brands"] - Todos + @_localizer["Todos"] @if (CanViewAdministrationGroup) { - Administration + @_localizer["Administration"] @if (_canViewUsers) { - Users + @_localizer["Users"] } @if (_canViewRoles) { - Roles + @_localizer["Roles"] } @if (_canViewTenants) { - Tenants + @_localizer["Tenants"] } } diff --git a/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx index 6e510a8546..10b8c3ac02 100644 --- a/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx +++ b/src/apps/blazor/client/Resources/Components/EntityTable/AddEditModal.af.resx @@ -123,4 +123,7 @@ Stoor + + Bywerking + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/MainLayout.af.resx b/src/apps/blazor/client/Resources/Layout/MainLayout.af.resx new file mode 100644 index 0000000000..467571d824 --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/MainLayout.af.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rekening + + + Gemeenskap + + + Meld af + + + Borg + + + Ondersteuning + + + Wissel laai + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/MainLayout.en.resx b/src/apps/blazor/client/Resources/Layout/MainLayout.en.resx new file mode 100644 index 0000000000..aa6f64f9d5 --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/MainLayout.en.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account + + + Community + + + Logout + + + Sponsor + + + Support + + + Toggle Drawer + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/MainLayout.resx b/src/apps/blazor/client/Resources/Layout/MainLayout.resx new file mode 100644 index 0000000000..3afbb5196c --- /dev/null +++ b/src/apps/blazor/client/Resources/Layout/MainLayout.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account + Account + + + Community + Community + + + Logout + Logout + + + Sponsor + Sponsor + + + Support + Support + + + Toggle Drawer + Toggle Drawer + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx index 7b63e21fce..5b1f6153a3 100644 --- a/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.af.resx @@ -117,9 +117,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Administrasie + Audit Trail + + Handelsmerke + Katalogus @@ -129,8 +135,22 @@ Modules + + Produkte + + + Rolle + Begin - Start + + + Huurders + + + Taaklys + + + Gebruikers \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx index aeda977c41..7170c1621e 100644 --- a/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.en.resx @@ -117,9 +117,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Administration + Audit Trail + + Brands + Catalog @@ -129,8 +135,22 @@ Modules + + Products + + + Roles + Start - Start + + + Tenants + + + Todos + + + Users \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Layout/NavMenu.resx b/src/apps/blazor/client/Resources/Layout/NavMenu.resx index 3b32230cfe..34dd80d1f9 100644 --- a/src/apps/blazor/client/Resources/Layout/NavMenu.resx +++ b/src/apps/blazor/client/Resources/Layout/NavMenu.resx @@ -117,10 +117,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Administration + Administration + Audit Trail Audit Trail + + Brands + Brands + Catalog Catalog @@ -133,8 +141,28 @@ Modules Modules + + Products + Products + + + Roles + Roles + Start Start + + Tenants + Tenants + + + Todos + Todos + + + Users + Users + \ No newline at end of file diff --git a/src/apps/blazor/infrastructure/Extensions.cs b/src/apps/blazor/infrastructure/Extensions.cs index 4ae26bf124..300f6b9a54 100644 --- a/src/apps/blazor/infrastructure/Extensions.cs +++ b/src/apps/blazor/infrastructure/Extensions.cs @@ -46,6 +46,5 @@ public static IServiceCollection AddClientServices(this IServiceCollection servi services.AddTransient(); services.AddNotifications(); return services; - } } diff --git a/src/apps/blazor/infrastructure/Preferences/IClientPreferenceManager.cs b/src/apps/blazor/infrastructure/Preferences/IClientPreferenceManager.cs index 444fd15c3f..63c17fb49b 100644 --- a/src/apps/blazor/infrastructure/Preferences/IClientPreferenceManager.cs +++ b/src/apps/blazor/infrastructure/Preferences/IClientPreferenceManager.cs @@ -10,5 +10,7 @@ public interface IClientPreferenceManager : IPreferenceManager Task ToggleDrawerAsync(); + Task ChangeLanguageAsync(string languageCode); + Task ToggleLayoutDirectionAsync(); } \ No newline at end of file diff --git a/src/apps/blazor/infrastructure/Preferences/IPreferenceManager.cs b/src/apps/blazor/infrastructure/Preferences/IPreferenceManager.cs index 041f44603b..c69920d27c 100644 --- a/src/apps/blazor/infrastructure/Preferences/IPreferenceManager.cs +++ b/src/apps/blazor/infrastructure/Preferences/IPreferenceManager.cs @@ -6,5 +6,5 @@ public interface IPreferenceManager Task GetPreference(); - Task ChangeLanguageAsync(string languageCode); + //Task ChangeLanguageAsync(string languageCode); } \ No newline at end of file From b6209506f8c0369a8bd07b2df6ffaaaf6705d7f4 Mon Sep 17 00:00:00 2001 From: kallievz Date: Fri, 10 Jan 2025 11:25:43 +0200 Subject: [PATCH 3/9] Expand to Account resx --- .../Components/EntityTable/EntityTable.razor | 3 +- .../Pages/Identity/Account/Account.razor | 2 +- .../Pages/Identity/Account/Profile.razor | 21 +- .../Pages/Identity/Account/Profile.razor.cs | 10 +- .../Pages/Identity/Account/Security.razor | 14 +- .../Pages/Identity/Account/Security.razor.cs | 2 +- .../Identity/Roles/RolePermissions.razor | 2 +- .../client/Pages/Identity/Roles/Roles.razor | 6 +- .../client/Pages/Identity/Users/Audit.razor | 2 +- .../Pages/Identity/Users/UserProfile.razor | 2 +- .../Pages/Identity/Users/UserRoles.razor | 2 +- .../client/Pages/Identity/Users/Users.razor | 2 +- .../client/Pages/Multitenancy/Tenants.razor | 29 +-- .../Pages/Multitenancy/Tenants.razor.cs | 23 +- .../UpgradeSubscriptionModal.razor | 18 +- .../Components/EntityTable/EntityTables.resx | 101 +++++++++ .../Pages/Identity/Account/Account.resx | 101 +++++++++ .../Pages/Identity/Account/Profile.af.resx | 156 ++++++++++++++ .../Pages/Identity/Account/Profile.en.resx | 156 ++++++++++++++ .../Pages/Identity/Account/Profile.resx | 168 +++++++++++++++ .../Pages/Identity/Account/Security.af.resx | 135 ++++++++++++ .../Pages/Identity/Account/Security.en.resx | 135 ++++++++++++ .../Pages/Identity/Account/Security.resx | 140 ++++++++++++ .../Pages/Identity/Roles/RolePermissions.resx | 101 +++++++++ .../Resources/Pages/Identity/Roles/Roles.resx | 101 +++++++++ .../Resources/Pages/Identity/Users/Audit.resx | 101 +++++++++ .../Pages/Identity/Users/UserProfile.resx | 101 +++++++++ .../Pages/Identity/Users/UserRoles.resx | 101 +++++++++ .../Resources/Pages/Identity/Users/Users.resx | 101 +++++++++ .../Pages/Multitenancy/Tenants.af.resx | 180 ++++++++++++++++ .../Pages/Multitenancy/Tenants.en.resx | 180 ++++++++++++++++ .../Resources/Pages/Multitenancy/Tenants.resx | 200 ++++++++++++++++++ .../UpgradeSubscriptionModal.af.resx | 141 ++++++++++++ .../UpgradeSubscriptionModal.en.resx | 141 ++++++++++++ .../UpgradeSubscriptionModal.resx | 148 +++++++++++++ 35 files changed, 2761 insertions(+), 65 deletions(-) create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/EntityTables.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Account.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Security.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Security.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Security.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Roles/RolePermissions.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Users.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.resx diff --git a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor index 6204120f53..7a914f9177 100644 --- a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor +++ b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor @@ -1,5 +1,4 @@ - -@typeparam TEntity +@typeparam TEntity @typeparam TId @typeparam TRequest diff --git a/src/apps/blazor/client/Pages/Identity/Account/Account.razor b/src/apps/blazor/client/Pages/Identity/Account/Account.razor index 0e7f7d13a3..d7c0606104 100644 --- a/src/apps/blazor/client/Pages/Identity/Account/Account.razor +++ b/src/apps/blazor/client/Pages/Identity/Account/Account.razor @@ -1,5 +1,5 @@ @page "/identity/account" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer diff --git a/src/apps/blazor/client/Pages/Identity/Account/Profile.razor b/src/apps/blazor/client/Pages/Identity/Account/Profile.razor index 63ce561c98..d41de7e929 100644 --- a/src/apps/blazor/client/Pages/Identity/Account/Profile.razor +++ b/src/apps/blazor/client/Pages/Identity/Account/Profile.razor @@ -1,4 +1,5 @@ - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + @@ -22,18 +23,18 @@
- Upload Profile Picture + @_localizer["Upload Profile Picture"] @if(!string.IsNullOrEmpty(_imageUrl)) { - View + @_localizer["View"] - Delete + @_localizer["Delete"] } @@ -47,7 +48,7 @@ - Profile Details + @_localizer["Profile Details"] @@ -56,19 +57,19 @@ + Label="@_localizer["First Name"]" Variant="Variant.Outlined" /> + Label="@_localizer["Last Name"]" Variant="Variant.Outlined" /> - @@ -76,7 +77,7 @@ Save Changes + ButtonType="ButtonType.Submit">@_localizer["Save Changes"] diff --git a/src/apps/blazor/client/Pages/Identity/Account/Profile.razor.cs b/src/apps/blazor/client/Pages/Identity/Account/Profile.razor.cs index f979d3f162..083bbba9c8 100644 --- a/src/apps/blazor/client/Pages/Identity/Account/Profile.razor.cs +++ b/src/apps/blazor/client/Pages/Identity/Account/Profile.razor.cs @@ -14,8 +14,10 @@ public partial class Profile { [CascadingParameter] protected Task AuthState { get; set; } = default!; + [Inject] protected IAuthenticationService AuthService { get; set; } = default!; + [Inject] protected IApiClient PersonalClient { get; set; } = default!; @@ -54,7 +56,7 @@ private async Task UpdateProfileAsync() if (await ApiHelper.ExecuteCallGuardedAsync( () => PersonalClient.UpdateUserEndpointAsync(_profileModel), Toast, _customValidation)) { - Toast.Add("Your Profile has been updated. Please Login again to Continue.", Severity.Success); + Toast.Add(_localizer["Your Profile has been updated. Please Login again to Continue."], Severity.Success); await AuthService.ReLoginAsync(Navigation.Uri); } } @@ -67,7 +69,7 @@ private async Task UploadFiles(InputFileChangeEventArgs e) string? extension = Path.GetExtension(file.Name); if (!AppConstants.SupportedImageFormats.Contains(extension.ToLower())) { - Toast.Add("Image Format Not Supported.", Severity.Error); + Toast.Add(_localizer["Image Format Not Supported."], Severity.Error); return; } @@ -85,13 +87,13 @@ private async Task UploadFiles(InputFileChangeEventArgs e) public async Task RemoveImageAsync() { - string deleteContent = "You're sure you want to delete your Profile Image?"; + string deleteContent = _localizer["You're sure you want to delete your Profile Image?"]; var parameters = new DialogParameters { { nameof(DeleteConfirmation.ContentText), deleteContent } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true, BackdropClick = false }; - var dialog = await DialogService.ShowAsync("Delete", parameters, options); + var dialog = await DialogService.ShowAsync(_localizer["Delete"], parameters, options); var result = await dialog.Result; if (!result!.Canceled) { diff --git a/src/apps/blazor/client/Pages/Identity/Account/Security.razor b/src/apps/blazor/client/Pages/Identity/Account/Security.razor index 4e6a3841bb..66198f506a 100644 --- a/src/apps/blazor/client/Pages/Identity/Account/Security.razor +++ b/src/apps/blazor/client/Pages/Identity/Account/Security.razor @@ -1,8 +1,9 @@ - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + - Change Password + @_localizer["Change Password"] @@ -11,20 +12,20 @@ @@ -33,7 +34,8 @@ - Change Password + @_localizer["Change Password"] + \ No newline at end of file diff --git a/src/apps/blazor/client/Pages/Identity/Account/Security.razor.cs b/src/apps/blazor/client/Pages/Identity/Account/Security.razor.cs index e9dcd200da..3720bb881b 100644 --- a/src/apps/blazor/client/Pages/Identity/Account/Security.razor.cs +++ b/src/apps/blazor/client/Pages/Identity/Account/Security.razor.cs @@ -20,7 +20,7 @@ private async Task ChangePasswordAsync() () => PersonalClient.ChangePasswordEndpointAsync(_passwordModel), Toast, _customValidation, - "Password Changed!")) + _localizer["Password Changed!"])) { _passwordModel.Password = string.Empty; _passwordModel.NewPassword = string.Empty; diff --git a/src/apps/blazor/client/Pages/Identity/Roles/RolePermissions.razor b/src/apps/blazor/client/Pages/Identity/Roles/RolePermissions.razor index 0124ba98f9..723725e2be 100644 --- a/src/apps/blazor/client/Pages/Identity/Roles/RolePermissions.razor +++ b/src/apps/blazor/client/Pages/Identity/Roles/RolePermissions.razor @@ -1,5 +1,5 @@ @page "/identity/roles/{Id}/permissions" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @if (!_loaded) diff --git a/src/apps/blazor/client/Pages/Identity/Roles/Roles.razor b/src/apps/blazor/client/Pages/Identity/Roles/Roles.razor index 55f909cdbd..fe9f953568 100644 --- a/src/apps/blazor/client/Pages/Identity/Roles/Roles.razor +++ b/src/apps/blazor/client/Pages/Identity/Roles/Roles.razor @@ -1,5 +1,5 @@ @page "/identity/roles" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @@ -13,11 +13,11 @@ @if (!Context.AddEditModal.IsCreate) { - + } - + _localizer diff --git a/src/apps/blazor/client/Pages/Identity/Users/UserProfile.razor b/src/apps/blazor/client/Pages/Identity/Users/UserProfile.razor index 6da18c6e3e..7344080a23 100644 --- a/src/apps/blazor/client/Pages/Identity/Users/UserProfile.razor +++ b/src/apps/blazor/client/Pages/Identity/Users/UserProfile.razor @@ -1,6 +1,6 @@ @page "/identity/users/{Id}/profile" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @if (!_loaded) { diff --git a/src/apps/blazor/client/Pages/Identity/Users/UserRoles.razor b/src/apps/blazor/client/Pages/Identity/Users/UserRoles.razor index 9684ead141..7e32dd29fd 100644 --- a/src/apps/blazor/client/Pages/Identity/Users/UserRoles.razor +++ b/src/apps/blazor/client/Pages/Identity/Users/UserRoles.razor @@ -1,5 +1,5 @@ @page "/identity/users/{Id}/roles" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @if (!_loaded) diff --git a/src/apps/blazor/client/Pages/Identity/Users/Users.razor b/src/apps/blazor/client/Pages/Identity/Users/Users.razor index 1986717c19..cc5941b1b2 100644 --- a/src/apps/blazor/client/Pages/Identity/Users/Users.razor +++ b/src/apps/blazor/client/Pages/Identity/Users/Users.razor @@ -1,5 +1,5 @@ @page "/identity/users" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer diff --git a/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor b/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor index a51e8e0239..15a7db4b79 100644 --- a/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor +++ b/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor @@ -1,44 +1,44 @@ @page "/tenants" - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer @inject IAuthenticationService Authentication - + - + - + - + + Label="@_localizer["Admin Email"]" /> @if(_canUpgrade) { - Upgrade Subscription + @_localizer["Upgrade Subscription"] } - @((context.ShowDetails == true) ? "Hide" : "Show") Tenant Details + @((context.ShowDetails == true) ? _localizer["Hide"] : _localizer["Show"]) @_localizer["Tenant Details"] @if (_canModify) { @if (!context.IsActive) { - Activate Tenant + @_localizer["Activate Tenant"] } else { - Deactivate Tenant + @_localizer["Deactivate Tenant"] } } @@ -51,7 +51,8 @@ - Details for Tenant : + + @_localizer["Details for Tenant :"] @context.Id @@ -62,11 +63,11 @@ @if(string.IsNullOrEmpty(context.ConnectionString?.Trim())) { - Shared Database + @_localizer["Shared Database"] } else { - Connection String + @_localizer["Connection String"] @context.ConnectionString?.Trim() diff --git a/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor.cs b/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor.cs index 3dbc8d41b4..cb3484f45f 100644 --- a/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor.cs +++ b/src/apps/blazor/client/Pages/Multitenancy/Tenants.razor.cs @@ -15,12 +15,15 @@ public partial class Tenants { [Inject] private IApiClient ApiClient { get; set; } = default!; + private string? _searchString; protected EntityClientTableContext Context { get; set; } = default!; private List _tenants = new(); public EntityTable EntityTable { get; set; } = default!; + [CascadingParameter] protected Task AuthState { get; set; } = default!; + [Inject] protected IAuthorizationService AuthService { get; set; } = default!; @@ -30,19 +33,19 @@ public partial class Tenants protected override async Task OnInitializedAsync() { Context = new( - entityName: "Tenant", - entityNamePlural: "Tenants", + entityName: _localizer["Tenant"], + entityNamePlural: _localizer["Tenants"], entityResource: FshResources.Tenants, searchAction: FshActions.View, deleteAction: string.Empty, updateAction: string.Empty, fields: new() { - new(tenant => tenant.Id, "Id"), - new(tenant => tenant.Name, "Name"), - new(tenant => tenant.AdminEmail, "Admin Email"), - new(tenant => tenant.ValidUpto.ToString("MMM dd, yyyy"), "Valid Upto"), - new(tenant => tenant.IsActive, "Active", Type: typeof(bool)) + new(tenant => tenant.Id, _localizer["Id"]), + new(tenant => tenant.Name, _localizer["Name"]), + new(tenant => tenant.AdminEmail, _localizer["Admin Email"]), + new(tenant => tenant.ValidUpto.ToString("MMM dd, yyyy"), _localizer["Valid Upto"]), + new(tenant => tenant.IsActive, _localizer["Active"], Type: typeof(bool)) }, loadDataFunc: async () => _tenants = (await ApiClient.GetTenantsEndpointAsync()).Adapt>(), searchFunc: (searchString, tenantDto) => @@ -82,7 +85,7 @@ private async Task ViewUpgradeSubscriptionModalAsync(string id) } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true, BackdropClick = false }; - var dialog = DialogService.Show("Upgrade Subscription", parameters, options); + var dialog = DialogService.Show(_localizer["Upgrade Subscription"], parameters, options); var result = await dialog.Result; if (!result.Canceled) { @@ -96,7 +99,7 @@ private async Task DeactivateTenantAsync(string id) () => ApiClient.DisableTenantEndpointAsync(id), Toast, Navigation, null, - "Tenant Deactivated.") is not null) + _localizer["Tenant Deactivated."]) is not null) { await EntityTable.ReloadDataAsync(); } @@ -108,7 +111,7 @@ private async Task ActivateTenantAsync(string id) () => ApiClient.ActivateTenantEndpointAsync(id), Toast, Navigation, null, - "Tenant Activated.") is not null) + _localizer["Tenant Activated."]) is not null) { await EntityTable.ReloadDataAsync(); } diff --git a/src/apps/blazor/client/Pages/Multitenancy/UpgradeSubscriptionModal.razor b/src/apps/blazor/client/Pages/Multitenancy/UpgradeSubscriptionModal.razor index 2b9b2bf4a4..2f531e9e13 100644 --- a/src/apps/blazor/client/Pages/Multitenancy/UpgradeSubscriptionModal.razor +++ b/src/apps/blazor/client/Pages/Multitenancy/UpgradeSubscriptionModal.razor @@ -1,29 +1,29 @@ @inject IApiClient TenantsClient - +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer - - Upgrade Subscription + @_localizer["Upgrade Subscription"] + - + - + - + - Cancel - Upgrade + @_localizer["Cancel"] + @_localizer["Upgrade"] @@ -44,7 +44,7 @@ () => TenantsClient.UpgradeSubscriptionEndpointAsync(Request), Toast, Navigation, null, - "Upgraded Subscription.") is not null) + _localizer["Upgraded Subscription."]) is not null) { MudDialog.Close(); } diff --git a/src/apps/blazor/client/Resources/Components/EntityTable/EntityTables.resx b/src/apps/blazor/client/Resources/Components/EntityTable/EntityTables.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Components/EntityTable/EntityTables.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/src/apps/blazor/client/Resources/Pages/Identity/Account/Account.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Account.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Account.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/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.af.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.af.resx new file mode 100644 index 0000000000..c82bb0768e --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.af.resx @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Verwyder + + + E-pos + + + Voornaam/Voorname + + + Foto tipe nie ondersteun nie. + + + Van + + + Telefoon Nommer + + + Profiel besonderhede + + + Stoor verandering + + + Laai profiel foto + + + Bekyk + + + Is u seker om profiel foto te verwyder? + + + Profiel is opdateer. Teken asb. weer in. + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.en.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.en.resx new file mode 100644 index 0000000000..285353214e --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.en.resx @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Delete + + + E-mail + + + First Name + + + Image Format Not Supported. + + + Last Name + + + Phone Number + + + Profile Details + + + Save Changes + + + Upload Profile Picture + + + View + + + You're sure you want to delete your Profile Image? + + + Your Profile has been updated. Please Login again to Continue. + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.resx new file mode 100644 index 0000000000..f644366f45 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Profile.resx @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Delete + Delete + + + Email + Email + + + First Name + First Name + + + Image Format Not Supported. + Image Format Not Supported. + + + Last Name + Last Name + + + Phone Number + Phone Number + + + Profile Details + Profile Details + + + Save Changes + Save Changes + + + Upload Profile Picture + Upload Profile Picture + + + View + View + + + You're sure you want to delete your Profile Image? + You're sure you want to delete your Profile Image? + + + Your Profile has been updated. Please Login again to Continue. + Your Profile has been updated. Please Login again to Continue. + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.af.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.af.resx new file mode 100644 index 0000000000..377e04f9f2 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.af.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Verander wagwoord + + + Huidige wagwoord + + + Wagwoord + + + Wagwoord verander! + + + Wagwoord bevestig + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.en.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.en.resx new file mode 100644 index 0000000000..3b226ddea2 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.en.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Change Password + + + Current Password + + + Password + + + Password Changed! + + + Password Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.resx b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.resx new file mode 100644 index 0000000000..7006c3ec89 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Account/Security.resx @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Change Password + Change Password + + + Current Password + Current Password + + + Password + Password + + + Password Changed! + Password Changed! + + + Password Confirmation + Password Confirmation + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Identity/Roles/RolePermissions.resx b/src/apps/blazor/client/Resources/Pages/Identity/Roles/RolePermissions.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Roles/RolePermissions.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/src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.resx b/src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.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/src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.resx b/src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.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/src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.resx b/src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.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/src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.resx b/src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.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/src/apps/blazor/client/Resources/Pages/Identity/Users/Users.resx b/src/apps/blazor/client/Resources/Pages/Identity/Users/Users.resx new file mode 100644 index 0000000000..4fdb1b6aff --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Identity/Users/Users.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/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.af.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.af.resx new file mode 100644 index 0000000000..3395ed941b --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.af.resx @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Aktiveer huurder + + + Aktief + + + Admin E-pos + + + Konneksie string + + + Deaktiveer huurder + + + Besonderhede vir huurder: + + + Steek weg + + + Id + + + Kode + + + Bestuur huurders. + + + Naam + + + Gedeelde databasis + + + Wys + + + Huurder + + + Huurder is ge-aktiveer. + + + Huurder is ge-deaktiveer. + + + Huurder besonderhede + + + Huurders + + + Opgradeer Subskripsie + + + Geldig tot + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.en.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.en.resx new file mode 100644 index 0000000000..4155ee047e --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.en.resx @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Activate Tenant + + + Active + + + Admin Email + + + Connection String + + + Deactivate Tenant + + + Details for Tenant: + + + Hide + + + Id + + + Key + + + Manage your Tenants. + + + Name + + + Shared Database + + + Show + + + Tenant + + + Tenant Activated. + + + Tenant Deactivated. + + + Tenant Details + + + Tenants + + + Upgrade Subscription + + + Valid Upto + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.resx new file mode 100644 index 0000000000..ae84d4b3f3 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/Tenants.resx @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Activate Tenant + Activate Tenant + + + Active + Active + + + Admin Email + Admin Email + + + Connection String + Connection String + + + Deactivate Tenant + Deactivate Tenant + + + Details for Tenant : + Details for Tenant : + + + Hide + Hide + + + Id + Id + + + Key + Key + + + Manage your Tenants. + Manage your Tenants. + + + Name + Name + + + Shared Database + Shared Database + + + Show + Show + + + Tenant + Tenant + + + Tenant Activated. + Tenant Activated. + + + Tenant Deactivated. + Tenant Deactivated. + + + Tenant Details + Tenant Details + + + Tenants + Tenants + + + Upgrade Subscription + Upgrade Subscription + + + Valid Upto + Valid Upto + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.af.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.af.resx new file mode 100644 index 0000000000..0900d1ea65 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.af.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kanseleer + + + Huidige verval datum + + + Nuwe verval datum + + + Huurder Id + + + Opdateer + + + Opdateer subskripsie + + + Subskripsie is opdateer + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx new file mode 100644 index 0000000000..4175d0a7aa --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + + + Current Expiry Date + + + New Expiry Date + + + Tenant Id + + + Upgrade + + + Upgrade Subscription + + + Upgraded Subscription. + + \ No newline at end of file diff --git a/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.resx b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.resx new file mode 100644 index 0000000000..83eac11290 --- /dev/null +++ b/src/apps/blazor/client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.resx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + Cancel + + + Current Expiry Date + Current Expiry Date + + + New Expiry Date + New Expiry Date + + + Tenant Id + Tenant Id + + + Upgrade + Upgrade + + + Upgrade Subscription + Upgrade Subscription + + + Upgraded Subscription. + Upgraded Subscription. + + \ No newline at end of file From e8636b3991c6af9e1fe5b3181094747f63f920b4 Mon Sep 17 00:00:00 2001 From: Casparus J Van Zyl Date: Fri, 17 Jan 2025 14:21:08 +0200 Subject: [PATCH 4/9] Update Nugets --- src/Directory.Packages.props | 52 +++++++++---------- src/api/server/appsettings.Development.json | 2 +- .../blazor/client/Directory.Packages.props | 10 ++-- .../infrastructure/Directory.Packages.props | 8 +-- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 52e83b4b5a..5061b5deff 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -16,29 +16,29 @@ - + - - + + - + - - - - + + + + - - - + + + - - + + @@ -46,11 +46,11 @@ - - + + - + @@ -58,19 +58,19 @@ - - + + - + - + @@ -80,13 +80,13 @@ - + - + - - - - + + + + \ No newline at end of file diff --git a/src/api/server/appsettings.Development.json b/src/api/server/appsettings.Development.json index 6090b07d4f..603e899e41 100644 --- a/src/api/server/appsettings.Development.json +++ b/src/api/server/appsettings.Development.json @@ -1,7 +1,7 @@ { "DatabaseOptions": { "Provider": "mssql", - "ConnectionString": "Data Source=KALLIE-LT\\SQL2019;Integrated Security=True;User ID=KALLIE-LT\\Kallie;Database=RUMAS_Q;TrustServerCertificate=True;" + "ConnectionString": "Data Source=KALLIENTB;Integrated Security=True;User ID=Kallientb\\Kallie;Database=RUMAS_ROOT;TrustServerCertificate=True;" }, "OriginOptions": { "OriginUrl": "https://localhost:7000" diff --git a/src/apps/blazor/client/Directory.Packages.props b/src/apps/blazor/client/Directory.Packages.props index d288f2a0f8..450b684249 100644 --- a/src/apps/blazor/client/Directory.Packages.props +++ b/src/apps/blazor/client/Directory.Packages.props @@ -10,13 +10,13 @@ - + - - + + - - + + \ No newline at end of file diff --git a/src/apps/blazor/infrastructure/Directory.Packages.props b/src/apps/blazor/infrastructure/Directory.Packages.props index ab41fcaea3..aa5662fc55 100644 --- a/src/apps/blazor/infrastructure/Directory.Packages.props +++ b/src/apps/blazor/infrastructure/Directory.Packages.props @@ -10,13 +10,13 @@ - + - + - - + + \ No newline at end of file From 4fc1345989d211ae1a9bb4b2c2335dfacfa04144 Mon Sep 17 00:00:00 2001 From: Casparus J Van Zyl Date: Mon, 20 Jan 2025 20:02:41 +0200 Subject: [PATCH 5/9] Expand on Loclaizations. Oustanding with Admin Permissions razor --- .../client/Components/Common/TablePager.razor | 3 +- .../Components/EntityTable/AddEditModal.razor | 9 +- .../Components/EntityTable/EntityTable.razor | 21 +- .../EntityTable/EntityTable.razor.cs | 8 +- .../Components/EntityTable/Modals.razor | 5 + .../Pages/Identity/Account/Account.razor | 6 +- .../client/Pages/Identity/Roles/Roles.razor | 15 +- .../Pages/Identity/Roles/Roles.razor.cs | 10 +- .../client/Pages/Identity/Users/Audit.razor | 14 +- .../Pages/Identity/Users/UserProfile.razor | 24 +- .../Pages/Identity/Users/UserRoles.razor | 12 +- .../client/Pages/Identity/Users/Users.razor | 22 +- .../Pages/Identity/Users/Users.razor.cs | 18 +- .../blazor/client/Pages/Todos/Todos.razor | 6 +- .../blazor/client/Pages/Todos/Todos.razor.cs | 4 +- .../TablePager.af.resx} | 11 +- .../TablePager.en.resx} | 11 +- .../TablePager.resx} | 16 +- .../Components/EntityTable/Modals.af.resx | 156 ++++++++++ .../Components/EntityTable/Modals.en.resx | 156 ++++++++++ .../Components/EntityTable/Modals.resx | 168 +++++++++++ .../client/Resources/Layout/NavMenu.af.resx | 2 +- .../Pages/Identity/Account/Account.af.resx | 132 +++++++++ .../Pages/Identity/Account/Account.en.resx | 132 +++++++++ .../Pages/Identity/Account/Account.resx | 229 ++++++++------- .../Identity/Roles/RolePermissions.af.resx} | 0 .../Identity/Roles/RolePermissions.en.resx | 101 +++++++ .../Pages/Identity/Roles/Roles.af.resx | 141 +++++++++ .../Pages/Identity/Roles/Roles.en.resx | 141 +++++++++ .../Resources/Pages/Identity/Roles/Roles.resx | 241 +++++++++------- .../Pages/Identity/Users/Audit.af.resx | 147 ++++++++++ .../Pages/Identity/Users/Audit.en.resx | 147 ++++++++++ .../Resources/Pages/Identity/Users/Audit.resx | 249 +++++++++------- .../Pages/Identity/Users/UserProfile.af.resx | 153 ++++++++++ .../Pages/Identity/Users/UserProfile.en.resx | 153 ++++++++++ .../Pages/Identity/Users/UserProfile.resx | 257 ++++++++++------- .../Pages/Identity/Users/UserRoles.af.resx | 101 +++++++ .../Pages/Identity/Users/UserRoles.en.resx | 101 +++++++ .../Pages/Identity/Users/Users.af.resx | 165 +++++++++++ .../Pages/Identity/Users/Users.en.resx | 165 +++++++++++ .../Resources/Pages/Identity/Users/Users.resx | 273 +++++++++++------- .../Resources/Pages/Todos/Todos.af.resx | 5 +- .../Resources/Pages/Todos/Todos.en.resx | 5 +- .../client/Resources/Pages/Todos/Todos.resx | 10 +- 44 files changed, 3143 insertions(+), 602 deletions(-) create mode 100644 src/apps/blazor/client/Components/EntityTable/Modals.razor rename src/apps/blazor/client/Resources/Components/{EntityTable/AddEditModal.en.resx => Common/TablePager.af.resx} (96%) rename src/apps/blazor/client/Resources/Components/{EntityTable/AddEditModal.af.resx => Common/TablePager.en.resx} (96%) rename src/apps/blazor/client/Resources/Components/{EntityTable/AddEditModal.resx => Common/TablePager.resx} (94%) create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/Modals.af.resx create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/Modals.en.resx create mode 100644 src/apps/blazor/client/Resources/Components/EntityTable/Modals.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Account.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Account/Account.en.resx rename src/apps/blazor/client/Resources/{Components/EntityTable/EntityTables.resx => Pages/Identity/Roles/RolePermissions.af.resx} (100%) create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Roles/RolePermissions.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Roles/Roles.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Audit.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserProfile.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/UserRoles.en.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Users.af.resx create mode 100644 src/apps/blazor/client/Resources/Pages/Identity/Users/Users.en.resx diff --git a/src/apps/blazor/client/Components/Common/TablePager.razor b/src/apps/blazor/client/Components/Common/TablePager.razor index 71bb4ed697..b2a851c3b9 100644 --- a/src/apps/blazor/client/Components/Common/TablePager.razor +++ b/src/apps/blazor/client/Components/Common/TablePager.razor @@ -1 +1,2 @@ - \ No newline at end of file +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer + \ No newline at end of file diff --git a/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor b/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor index ad0f28ba75..00e0cd8cc4 100644 --- a/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor +++ b/src/apps/blazor/client/Components/EntityTable/AddEditModal.razor @@ -1,4 +1,5 @@ -@typeparam TRequest +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer +@typeparam TRequest @@ -29,18 +30,18 @@ - Cancel + @_localizer["Cancel"] @if (IsCreate) { - Save + @_localizer["Save"] } else { - Update + @_localizer["Update"] } diff --git a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor index 7a914f9177..f3e672d8f1 100644 --- a/src/apps/blazor/client/Components/EntityTable/EntityTable.razor +++ b/src/apps/blazor/client/Components/EntityTable/EntityTable.razor @@ -1,9 +1,8 @@ -@typeparam TEntity +@inject Microsoft.Extensions.Localization.IStringLocalizer _localizer +@typeparam TEntity @typeparam TId @typeparam TRequest - @inject IJSRuntime JS -