From 57a4332ccd291c2d22797aec02c5c6756b74ba20 Mon Sep 17 00:00:00 2001 From: "yvan.calatayud" Date: Thu, 11 Jan 2024 16:17:09 +0100 Subject: [PATCH] feat : Globalisation & Localisation + fix add --- Blazor/Blazor/Blazor.csproj | 1 + Blazor/Blazor/Components/BackButton.razor | 2 +- Blazor/Blazor/Components/BackButton.razor.cs | 7 +- .../Blazor/Controllers/CultureController.cs | 31 ++++ Blazor/Blazor/Modals/DeleteConfirmation.razor | 6 +- .../Blazor/Modals/DeleteConfirmation.razor.cs | 4 + Blazor/Blazor/Models/AdministratorModel.cs | 4 +- Blazor/Blazor/Models/ChapterModel.cs | 2 +- Blazor/Blazor/Models/PlayerModel.cs | 4 +- .../Pages/Admins/AddAdministrator.razor | 8 +- .../Pages/Admins/AddAdministrator.razor.cs | 56 +++---- .../Blazor/Pages/Admins/Administrators.razor | 10 +- .../Pages/Admins/Administrators.razor.cs | 5 + .../Pages/Admins/EditAdministrator.razor | 8 +- .../Pages/Admins/EditAdministrator.razor.cs | 98 ++++++------ Blazor/Blazor/Pages/Chapters/AddChapter.razor | 6 +- .../Blazor/Pages/Chapters/AddChapter.razor.cs | 58 +++---- Blazor/Blazor/Pages/Chapters/Chapters.razor | 10 +- .../Blazor/Pages/Chapters/Chapters.razor.cs | 4 + .../Blazor/Pages/Chapters/EditChapter.razor | 6 +- .../Pages/Chapters/EditChapter.razor.cs | 4 + Blazor/Blazor/Pages/Players/AddPlayer.razor | 8 +- .../Blazor/Pages/Players/AddPlayer.razor.cs | 6 +- Blazor/Blazor/Pages/Players/EditPlayer.razor | 9 +- .../Blazor/Pages/Players/EditPlayer.razor.cs | 5 + Blazor/Blazor/Pages/Players/Players.razor | 10 +- Blazor/Blazor/Pages/Players/Players.razor.cs | 4 + .../Blazor/Pages/Questions/AddQuestion.razor | 10 +- .../Pages/Questions/AddQuestion.razor.cs | 4 + .../Blazor/Pages/Questions/EditQuestion.razor | 17 +-- .../Pages/Questions/EditQuestion.razor.cs | 6 +- Blazor/Blazor/Pages/Questions/Questions.razor | 15 +- .../Blazor/Pages/Questions/Questions.razor.cs | 5 + Blazor/Blazor/Program.cs | 35 +++++ .../Components.BackButton.fr-FR.resx | 123 +++++++++++++++ .../Resources/Components.BackButton.resx | 123 +++++++++++++++ .../Modals.DeleteConfirmation.fr-FR.resx | 129 ++++++++++++++++ .../Resources/Modals.DeleteConfirmation.resx | 129 ++++++++++++++++ .../Pages.Admins.AddAdministrator.fr-FR.resx | 132 ++++++++++++++++ .../Pages.Admins.AddAdministrator.resx | 132 ++++++++++++++++ .../Pages.Admins.Administrators.fr-FR.resx | 135 ++++++++++++++++ .../Pages.Admins.Administrators.resx | 135 ++++++++++++++++ .../Pages.Admins.EditAdministrator.fr-FR.resx | 132 ++++++++++++++++ .../Pages.Admins.EditAdministrator.resx | 132 ++++++++++++++++ .../Pages.Chapters.AddChapter.fr-FR.resx | 129 ++++++++++++++++ .../Resources/Pages.Chapters.AddChapter.resx | 129 ++++++++++++++++ .../Pages.Chapters.Chapters.fr-FR.resx | 138 +++++++++++++++++ .../Resources/Pages.Chapters.Chapters.resx | 138 +++++++++++++++++ .../Pages.Chapters.EditChapter.fr-FR.resx | 129 ++++++++++++++++ .../Resources/Pages.Chapters.EditChapter.resx | 129 ++++++++++++++++ .../Pages.Players.AddPlayer.fr-FR.resx | 132 ++++++++++++++++ .../Resources/Pages.Players.AddPlayer.resx | 132 ++++++++++++++++ .../Pages.Players.EditPlayer.fr-FR.resx | 132 ++++++++++++++++ .../Resources/Pages.Players.EditPlayer.resx | 132 ++++++++++++++++ .../Pages.Players.Players.fr-FR.resx | 135 ++++++++++++++++ .../Resources/Pages.Players.Players.resx | 135 ++++++++++++++++ .../Pages.Questions.AddQuestion.fr-FR.resx | 135 ++++++++++++++++ .../Pages.Questions.AddQuestion.resx | 136 +++++++++++++++++ .../Pages.Questions.EditQuestion.fr-FR.resx | 135 ++++++++++++++++ .../Pages.Questions.EditQuestion.resx | 135 ++++++++++++++++ .../Pages.Questions.Questions.fr-FR.resx | 144 ++++++++++++++++++ .../Resources/Pages.Questions.Questions.resx | 144 ++++++++++++++++++ .../Shared.CultureSelector.fr-FR.resx | 123 +++++++++++++++ .../Resources/Shared.CultureSelector.resx | 123 +++++++++++++++ .../Resources/Shared.NavMenu.fr-FR.resx | 138 +++++++++++++++++ Blazor/Blazor/Resources/Shared.NavMenu.resx | 138 +++++++++++++++++ Blazor/Blazor/Shared/CultureSelector.razor | 43 ++++++ Blazor/Blazor/Shared/CultureSelector.razor.cs | 11 ++ Blazor/Blazor/Shared/MainLayout.razor | 4 +- Blazor/Blazor/Shared/NavMenu.razor | 10 +- Blazor/Blazor/Shared/NavMenu.razor.cs | 11 ++ 71 files changed, 4613 insertions(+), 177 deletions(-) create mode 100644 Blazor/Blazor/Controllers/CultureController.cs create mode 100644 Blazor/Blazor/Resources/Components.BackButton.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Components.BackButton.resx create mode 100644 Blazor/Blazor/Resources/Modals.DeleteConfirmation.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Modals.DeleteConfirmation.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.Administrators.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.Administrators.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.AddChapter.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.AddChapter.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.Chapters.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.Chapters.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.EditChapter.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Chapters.EditChapter.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.AddPlayer.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.AddPlayer.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.EditPlayer.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.EditPlayer.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.Players.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Players.Players.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.AddQuestion.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.AddQuestion.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.EditQuestion.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.EditQuestion.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.Questions.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Pages.Questions.Questions.resx create mode 100644 Blazor/Blazor/Resources/Shared.CultureSelector.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Shared.CultureSelector.resx create mode 100644 Blazor/Blazor/Resources/Shared.NavMenu.fr-FR.resx create mode 100644 Blazor/Blazor/Resources/Shared.NavMenu.resx create mode 100644 Blazor/Blazor/Shared/CultureSelector.razor create mode 100644 Blazor/Blazor/Shared/CultureSelector.razor.cs create mode 100644 Blazor/Blazor/Shared/NavMenu.razor.cs diff --git a/Blazor/Blazor/Blazor.csproj b/Blazor/Blazor/Blazor.csproj index aca3f8b..62be3fa 100644 --- a/Blazor/Blazor/Blazor.csproj +++ b/Blazor/Blazor/Blazor.csproj @@ -25,6 +25,7 @@ + diff --git a/Blazor/Blazor/Components/BackButton.razor b/Blazor/Blazor/Components/BackButton.razor index 6339d42..c71bd2b 100644 --- a/Blazor/Blazor/Components/BackButton.razor +++ b/Blazor/Blazor/Components/BackButton.razor @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/Blazor/Blazor/Components/BackButton.razor.cs b/Blazor/Blazor/Components/BackButton.razor.cs index b2ade6a..82cd5da 100644 --- a/Blazor/Blazor/Components/BackButton.razor.cs +++ b/Blazor/Blazor/Components/BackButton.razor.cs @@ -1,4 +1,6 @@ -using Microsoft.AspNetCore.Components; +using Blazor.Pages.Questions; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; namespace Blazor.Components { @@ -8,6 +10,9 @@ namespace Blazor.Components [Parameter] public string RedirectionPage { get; set; } + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public required NavigationManager NavigationManager { get; set; } private void Back() diff --git a/Blazor/Blazor/Controllers/CultureController.cs b/Blazor/Blazor/Controllers/CultureController.cs new file mode 100644 index 0000000..328c28e --- /dev/null +++ b/Blazor/Blazor/Controllers/CultureController.cs @@ -0,0 +1,31 @@ +using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.Mvc; + +/// +/// The culture controller. +/// +[Route("[controller]/[action]")] +public class CultureController : Controller +{ + /// + /// Sets the culture. + /// + /// The culture. + /// The redirect URI. + /// + /// The action result. + /// + public IActionResult SetCulture(string culture, string redirectUri) + { + if (culture != null) + { + // Define a cookie with the selected culture + this.HttpContext.Response.Cookies.Append( + CookieRequestCultureProvider.DefaultCookieName, + CookieRequestCultureProvider.MakeCookieValue( + new RequestCulture(culture))); + } + + return this.LocalRedirect(redirectUri); + } +} \ No newline at end of file diff --git a/Blazor/Blazor/Modals/DeleteConfirmation.razor b/Blazor/Blazor/Modals/DeleteConfirmation.razor index 3eab751..8dbe2e4 100644 --- a/Blazor/Blazor/Modals/DeleteConfirmation.razor +++ b/Blazor/Blazor/Modals/DeleteConfirmation.razor @@ -3,10 +3,10 @@

- Are you sure you want to delete ? + @Localizer["Question"]

- + - +
diff --git a/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs b/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs index 4ff91c2..6551087 100644 --- a/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs +++ b/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs @@ -3,6 +3,7 @@ using Blazored.Modal.Services; using Blazored.Modal; using Microsoft.AspNetCore.Components; using Blazor.ViewClasses; +using Microsoft.Extensions.Localization; namespace Blazor.Modals { @@ -11,6 +12,9 @@ namespace Blazor.Modals [CascadingParameter] public required BlazoredModalInstance ModalInstance { get; set; } + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Models/AdministratorModel.cs b/Blazor/Blazor/Models/AdministratorModel.cs index 7331a39..89e5042 100644 --- a/Blazor/Blazor/Models/AdministratorModel.cs +++ b/Blazor/Blazor/Models/AdministratorModel.cs @@ -8,8 +8,8 @@ namespace Blazor.Models; public class AdministratorModel { public int Id { get; set; } - public required string Username { get; set; } - public required string HashedPassword { get; set; } + public string Username { get; set; } + public string HashedPassword { get; set; } public void HashPassword(string password) { diff --git a/Blazor/Blazor/Models/ChapterModel.cs b/Blazor/Blazor/Models/ChapterModel.cs index 7a6d9bc..44915a5 100644 --- a/Blazor/Blazor/Models/ChapterModel.cs +++ b/Blazor/Blazor/Models/ChapterModel.cs @@ -8,6 +8,6 @@ namespace Blazor.Models [Required(ErrorMessage = "Name is required")] [StringLength(50, ErrorMessage = "Name is too long.")] - public required string Name { get; set; } + public string Name { get; set; } } } diff --git a/Blazor/Blazor/Models/PlayerModel.cs b/Blazor/Blazor/Models/PlayerModel.cs index 84572aa..43c37a0 100644 --- a/Blazor/Blazor/Models/PlayerModel.cs +++ b/Blazor/Blazor/Models/PlayerModel.cs @@ -7,8 +7,8 @@ namespace Blazor.Models; public class PlayerModel { public int Id { get; set; } - public required string Nickname { get; set; } - public required string HashedPassword { get; set; } + public string Nickname { get; set; } + public string HashedPassword { get; set; } public void HashPassword(string password) { diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor index 7742c74..6b74e4f 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor @@ -1,24 +1,24 @@ @page "/addAdministrator" @using Blazor.Models -

AddAdministrator

+

@Localizer["Title"]

- +
\ No newline at end of file diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs index e73d03a..2a7a5c7 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs @@ -1,25 +1,29 @@ -using Microsoft.AspNetCore.Components; -using Blazor.Models; -using Blazor.Services; - -namespace Blazor.Pages.Admins -{ - public partial class AddAdministrator - { - private AdministratorModel? administratorModel; - - [Inject] - public required IDataService DataService { get; set; } - - [Inject] - public required NavigationManager NavigationManager { get; set; } - - [Inject] - public required ILogger Logger { get; set; } - - - private async Task HandleValidSubmit() - { +using Microsoft.AspNetCore.Components; +using Blazor.Models; +using Blazor.Services; +using Microsoft.Extensions.Localization; + +namespace Blazor.Pages.Admins +{ + public partial class AddAdministrator + { + private AdministratorModel administratorModel = new(); + + [Inject] + public IStringLocalizer Localizer { get; set; } + + [Inject] + public required IDataService DataService { get; set; } + + [Inject] + public required NavigationManager NavigationManager { get; set; } + + [Inject] + public required ILogger Logger { get; set; } + + + private async Task HandleValidSubmit() + { if (administratorModel != null) { administratorModel.HashPassword(administratorModel.HashedPassword); @@ -49,7 +53,7 @@ namespace Blazor.Pages.Admins Logger.LogInformation("Admin '{administratorsModelName}' added", administratorModel.Username); NavigationManager.NavigateTo("administrators"); - } - } - } -} + } + } + } +} diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor b/Blazor/Blazor/Pages/Admins/Administrators.razor index 220c6f7..277b478 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor @@ -2,11 +2,11 @@ @using Blazorise.DataGrid @using Blazor.ViewClasses -

Administrators

+

@Localizer["Title"]

- Ajouter + @Localizer["Add"]
- + - Editer - + @Localizer["Edit"] + diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs index 891f1f8..1e9cfea 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs @@ -6,6 +6,7 @@ using Blazored.LocalStorage; using Blazored.Modal.Services; using Blazor.Services; using Blazored.Modal; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Admins; @@ -14,9 +15,13 @@ public partial class Administrators public List administrators = new(); private int totalItem; + [CascadingParameter] public required IModalService Modal { get; set; } + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor index 672a5dc..5519141 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor @@ -6,7 +6,7 @@
-

EditAdministrator

+

@Localizer["Title"]

@@ -14,18 +14,18 @@
- +
\ No newline at end of file diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs index c5fd294..de5f982 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs @@ -1,46 +1,50 @@ -using Blazor.Models; -using Blazor.Services; -using Microsoft.AspNetCore.Components; - -namespace Blazor.Pages.Admins -{ - public partial class EditAdministrator - { - - [Parameter] - public int Id { get; set; } - - private AdministratorModel? administratorModel; - - [Inject] - public required IDataService DataService { get; set; } - - [Inject] - public required NavigationManager NavigationManager { get; set; } - - [Inject] - public required IWebHostEnvironment WebHostEnvironment { get; set; } - - [Inject] - public required ILogger Logger { get; set; } - - private string OldAdminName { get; set; } = ""; - - protected override async Task OnInitializedAsync() - { - var administrator = await DataService.GetAdminById(Id); - OldAdminName = administrator.Username; - - administratorModel = new AdministratorModel - { - Id = administrator.Id, - Username = administrator.Username, - HashedPassword = administrator.HashedPassword - }; - } - - private async Task HandleValidSubmit() - { +using Blazor.Models; +using Blazor.Services; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; + +namespace Blazor.Pages.Admins +{ + public partial class EditAdministrator + { + + [Parameter] + public int Id { get; set; } + + private AdministratorModel? administratorModel; + + [Inject] + public IStringLocalizer Localizer { get; set; } + + [Inject] + public required IDataService DataService { get; set; } + + [Inject] + public required NavigationManager NavigationManager { get; set; } + + [Inject] + public required IWebHostEnvironment WebHostEnvironment { get; set; } + + [Inject] + public required ILogger Logger { get; set; } + + private string OldAdminName { get; set; } = ""; + + protected override async Task OnInitializedAsync() + { + var administrator = await DataService.GetAdminById(Id); + OldAdminName = administrator.Username; + + administratorModel = new AdministratorModel + { + Id = administrator.Id, + Username = administrator.Username, + HashedPassword = administrator.HashedPassword + }; + } + + private async Task HandleValidSubmit() + { if (administratorModel != null) { administratorModel.HashPassword(administratorModel.HashedPassword); @@ -70,7 +74,7 @@ namespace Blazor.Pages.Admins Logger.LogInformation("Admin '{OldAdminModelName}' edited in '{NewAdminModelName}'", OldAdminName, administratorModel.Username); NavigationManager.NavigateTo("administrators"); - } - } - } -} + } + } + } +} diff --git a/Blazor/Blazor/Pages/Chapters/AddChapter.razor b/Blazor/Blazor/Pages/Chapters/AddChapter.razor index 3be1097..167b818 100644 --- a/Blazor/Blazor/Pages/Chapters/AddChapter.razor +++ b/Blazor/Blazor/Pages/Chapters/AddChapter.razor @@ -1,7 +1,7 @@ @page "/addChapter" @using Blazor.Models -

Add Chapter

+

@Localizer["Title"]

@@ -10,11 +10,11 @@

- +
\ No newline at end of file diff --git a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs index 150dd2a..600012d 100644 --- a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs @@ -1,26 +1,30 @@ -using Microsoft.AspNetCore.Components; -using Blazor.Models; -using Blazor.Services; - -namespace Blazor.Pages.Chapters; - -public partial class AddChapter -{ - private ChapterModel? chapterModel; - - [Inject] - public required IDataService DataService { get; set; } - - [Inject] - public required NavigationManager NavigationManager { get; set; } - - [Inject] - public required ILogger Logger { get; set; } - - - - private async Task HandleValidSubmit() - { +using Microsoft.AspNetCore.Components; +using Blazor.Models; +using Blazor.Services; +using Microsoft.Extensions.Localization; + +namespace Blazor.Pages.Chapters; + +public partial class AddChapter +{ + private ChapterModel chapterModel = new(); + + [Inject] + public IStringLocalizer Localizer { get; set; } + + [Inject] + public required IDataService DataService { get; set; } + + [Inject] + public required NavigationManager NavigationManager { get; set; } + + [Inject] + public required ILogger Logger { get; set; } + + + + private async Task HandleValidSubmit() + { if (chapterModel != null) { var formData = new List>(); @@ -48,7 +52,7 @@ public partial class AddChapter Logger.LogInformation("Chapter '{chapterModelName}' added", chapterModel.Name); NavigationManager.NavigateTo("chapters"); - } - } - -} + } + } + +} diff --git a/Blazor/Blazor/Pages/Chapters/Chapters.razor b/Blazor/Blazor/Pages/Chapters/Chapters.razor index c313486..5d315de 100644 --- a/Blazor/Blazor/Pages/Chapters/Chapters.razor +++ b/Blazor/Blazor/Pages/Chapters/Chapters.razor @@ -2,11 +2,11 @@ @using Blazor.ViewClasses; @using Blazorise.DataGrid @using Blazored.Modal; -

Chapters

+

@Localizer["Title"]

- Ajouter + @Localizer["Add"]
@@ -18,11 +18,11 @@ ShowPager Responsive> - + - Editer - + @Localizer["Edit"] + diff --git a/Blazor/Blazor/Pages/Chapters/Chapters.razor.cs b/Blazor/Blazor/Pages/Chapters/Chapters.razor.cs index 7243cc5..1f7e36d 100644 --- a/Blazor/Blazor/Pages/Chapters/Chapters.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/Chapters.razor.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components; using Blazorise.DataGrid; using Blazor.Modals; using Blazored.Modal; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Chapters; public partial class Chapters @@ -15,6 +16,9 @@ public partial class Chapters private int totalChapter; + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public NavigationManager NavigationManager { get; set; } diff --git a/Blazor/Blazor/Pages/Chapters/EditChapter.razor b/Blazor/Blazor/Pages/Chapters/EditChapter.razor index 42533af..dd94ce7 100644 --- a/Blazor/Blazor/Pages/Chapters/EditChapter.razor +++ b/Blazor/Blazor/Pages/Chapters/EditChapter.razor @@ -7,19 +7,19 @@
-

Edit Chapter

+

@Localizer["Title"]

- +
diff --git a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs index c2dc0d2..5f1caca 100644 --- a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs @@ -1,6 +1,7 @@ using Blazor.Models; using Blazor.Services; using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Chapters; @@ -11,6 +12,9 @@ public partial class EditChapter private ChapterModel? chapterModel; + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Players/AddPlayer.razor b/Blazor/Blazor/Pages/Players/AddPlayer.razor index c284ddd..5719fb5 100644 --- a/Blazor/Blazor/Pages/Players/AddPlayer.razor +++ b/Blazor/Blazor/Pages/Players/AddPlayer.razor @@ -1,7 +1,7 @@ @page "/addPlayer" @using Blazor.Models -

Add Player

+

@Localizer["Title"]

@@ -9,15 +9,15 @@

- +
\ No newline at end of file diff --git a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs index ffce2cc..46317c6 100644 --- a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs @@ -1,12 +1,16 @@ using Microsoft.AspNetCore.Components; using Blazor.Models; using Blazor.Services; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Players { public partial class AddPlayer { - private PlayerModel? playerModel; + private PlayerModel playerModel = new(); + + [Inject] + public IStringLocalizer Localizer { get; set; } [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Players/EditPlayer.razor b/Blazor/Blazor/Pages/Players/EditPlayer.razor index c6f95bb..b7abe8a 100644 --- a/Blazor/Blazor/Pages/Players/EditPlayer.razor +++ b/Blazor/Blazor/Pages/Players/EditPlayer.razor @@ -6,26 +6,25 @@
-

Edit Player

- +

@Localizer["Title"]

- Password: + @Localizer["HashedPassword"] :
- +
\ No newline at end of file diff --git a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs index 515e8a6..f1247b5 100644 --- a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs @@ -1,6 +1,7 @@ using Blazor.Models; using Blazor.Services; using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Players { @@ -12,6 +13,10 @@ namespace Blazor.Pages.Players private PlayerModel? playerModel; + [Inject] + public IStringLocalizer Localizer { get; set; } + + [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Players/Players.razor b/Blazor/Blazor/Pages/Players/Players.razor index 148f410..24d4873 100644 --- a/Blazor/Blazor/Pages/Players/Players.razor +++ b/Blazor/Blazor/Pages/Players/Players.razor @@ -2,11 +2,11 @@ @using Blazor.ViewClasses; @using Blazorise.DataGrid @using Blazored.Modal; -

Joueurs

+

@Localizer["Title"]

- Ajouter + @Localizer["Add"]
@@ -18,11 +18,11 @@ ShowPager Responsive> - + - Editer - + @Localizer["Edit"] + diff --git a/Blazor/Blazor/Pages/Players/Players.razor.cs b/Blazor/Blazor/Pages/Players/Players.razor.cs index 36a5214..9e01e42 100644 --- a/Blazor/Blazor/Pages/Players/Players.razor.cs +++ b/Blazor/Blazor/Pages/Players/Players.razor.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components; using Blazorise.DataGrid; using Blazor.Modals; using Blazored.Modal; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Players; @@ -16,6 +17,9 @@ public partial class Players private int totalPlayer; + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public required NavigationManager NavigationManager { get; set; } diff --git a/Blazor/Blazor/Pages/Questions/AddQuestion.razor b/Blazor/Blazor/Pages/Questions/AddQuestion.razor index d471e31..5dd9421 100644 --- a/Blazor/Blazor/Pages/Questions/AddQuestion.razor +++ b/Blazor/Blazor/Pages/Questions/AddQuestion.razor @@ -1,20 +1,20 @@ @page "/addQuestion" @using Blazor.Models -

AddQuestion

+

@Localizer["Title"]

} - +
diff --git a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs index 551d1fd..36e7911 100644 --- a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs @@ -4,6 +4,7 @@ using Blazor.Services; using Blazor.Pages.Admins; using Blazor.ViewClasses; using static System.Net.WebRequestMethods; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Questions { @@ -17,6 +18,9 @@ namespace Blazor.Pages.Questions public List checkboxs = new(); + [Inject] + public IStringLocalizer Localizer { get; set; } + [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Questions/EditQuestion.razor b/Blazor/Blazor/Pages/Questions/EditQuestion.razor index 5d4a6a6..f1259a0 100644 --- a/Blazor/Blazor/Pages/Questions/EditQuestion.razor +++ b/Blazor/Blazor/Pages/Questions/EditQuestion.razor @@ -1,7 +1,6 @@ @page "/editQuestion/{Id:int}" -

EditQuestion

- +

@Localizer["Title"]

@@ -9,31 +8,31 @@

- +
diff --git a/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs index 948ce85..aa1af12 100644 --- a/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs @@ -1,6 +1,7 @@ using Blazor.Models; using Blazor.Services; using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; using static Blazor.Pages.Questions.AddQuestion; namespace Blazor.Pages.Questions @@ -11,7 +12,10 @@ namespace Blazor.Pages.Questions [Parameter] public int Id { get; set; } - private QuestionModel? questionModel; + private QuestionModel questionModel = new(); + + [Inject] + public IStringLocalizer Localizer { get; set; } [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Questions/Questions.razor b/Blazor/Blazor/Pages/Questions/Questions.razor index ce1332b..3b777ad 100644 --- a/Blazor/Blazor/Pages/Questions/Questions.razor +++ b/Blazor/Blazor/Pages/Questions/Questions.razor @@ -2,14 +2,15 @@ @using Blazor.ViewClasses; @using Blazorise.DataGrid @using Blazored.Modal; -

Questions

+ +

@Localizer["Title"]

- Ajouter + @Localizer["Add"] - Exporter + @Localizer["Export"]
@@ -22,13 +23,13 @@ ShowPager Responsive> - + - Afficher - Editer - + @Localizer["Show"] + @Localizer["Edit"] + diff --git a/Blazor/Blazor/Pages/Questions/Questions.razor.cs b/Blazor/Blazor/Pages/Questions/Questions.razor.cs index 8236906..3a22cde 100644 --- a/Blazor/Blazor/Pages/Questions/Questions.razor.cs +++ b/Blazor/Blazor/Pages/Questions/Questions.razor.cs @@ -12,6 +12,7 @@ using Blazor.Modals; using Blazored.Modal; using System.Text.RegularExpressions; using Blazor.Components; +using Microsoft.Extensions.Localization; namespace Blazor.Pages.Questions; @@ -21,6 +22,10 @@ public partial class Questions private int totalQuestion; + [Inject] + public IStringLocalizer Localizer { get; set; } + + [Inject] public required NavigationManager NavigationManager { get; set; } diff --git a/Blazor/Blazor/Program.cs b/Blazor/Blazor/Program.cs index b6ec9e5..f8c9375 100644 --- a/Blazor/Blazor/Program.cs +++ b/Blazor/Blazor/Program.cs @@ -5,6 +5,9 @@ using Blazorise.Bootstrap; using Blazorise.Icons.FontAwesome; using Blazored.Modal; +using Microsoft.AspNetCore.Localization; +using System.Globalization; +using Microsoft.Extensions.Options; var builder = WebApplication.CreateBuilder(args); @@ -35,6 +38,23 @@ builder.Services.AddScoped(); builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); +// Add the controller of the app +builder.Services.AddControllers(); + +// Add the localization to the app and specify the resources path +builder.Services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; }); + +// Configure the localtization +builder.Services.Configure(options => +{ + // Set the default culture of the web site + options.DefaultRequestCulture = new RequestCulture(new CultureInfo("en-US")); + + // Declare the supported culture + options.SupportedCultures = new List { new CultureInfo("en-US"), new CultureInfo("fr-FR") }; + options.SupportedUICultures = new List { new CultureInfo("en-US"), new CultureInfo("fr-FR") }; +}); + var app = builder.Build(); // Configure the HTTP request pipeline. @@ -47,6 +67,21 @@ if (!app.Environment.IsDevelopment()) app.UseStaticFiles(); app.UseRouting(); +// Get the current localization options +var options = ((IApplicationBuilder)app).ApplicationServices.GetService>(); + +if (options?.Value != null) +{ + // use the default localization + app.UseRequestLocalization(options.Value); +} + +// Add the controller to the endpoint +app.UseEndpoints(endpoints => +{ + endpoints.MapControllers(); +}); + app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); diff --git a/Blazor/Blazor/Resources/Components.BackButton.fr-FR.resx b/Blazor/Blazor/Resources/Components.BackButton.fr-FR.resx new file mode 100644 index 0000000..5be6204 --- /dev/null +++ b/Blazor/Blazor/Resources/Components.BackButton.fr-FR.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 + + + Retour + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Components.BackButton.resx b/Blazor/Blazor/Resources/Components.BackButton.resx new file mode 100644 index 0000000..2fd2e5d --- /dev/null +++ b/Blazor/Blazor/Resources/Components.BackButton.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 + + + Back + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Modals.DeleteConfirmation.fr-FR.resx b/Blazor/Blazor/Resources/Modals.DeleteConfirmation.fr-FR.resx new file mode 100644 index 0000000..ddf2df0 --- /dev/null +++ b/Blazor/Blazor/Resources/Modals.DeleteConfirmation.fr-FR.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 + + + Annuler + + + Supprimer + + + Voulez vous vraiment supprimer ? + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Modals.DeleteConfirmation.resx b/Blazor/Blazor/Resources/Modals.DeleteConfirmation.resx new file mode 100644 index 0000000..7778715 --- /dev/null +++ b/Blazor/Blazor/Resources/Modals.DeleteConfirmation.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 + + + Delete + + + Are you sure you want to delete ? + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.fr-FR.resx new file mode 100644 index 0000000..e465b26 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.fr-FR.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 + + + Mot de passe + + + Valider + + + Ajouter un administrateur + + + Nom d'utilisateur + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.resx b/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.resx new file mode 100644 index 0000000..f8d833e --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.AddAdministrator.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 + + + Password + + + Submit + + + Add administrator + + + Username + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.Administrators.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Admins.Administrators.fr-FR.resx new file mode 100644 index 0000000..e8903b8 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.Administrators.fr-FR.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 + + + Ajouter + + + Supprimer + + + Editer + + + Administrateurs + + + Nom d'utilisateur + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.Administrators.resx b/Blazor/Blazor/Resources/Pages.Admins.Administrators.resx new file mode 100644 index 0000000..9b4d7f0 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.Administrators.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 + + + Add + + + Delete + + + Edit + + + Administrators + + + Username + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.fr-FR.resx new file mode 100644 index 0000000..9eae287 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.fr-FR.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 + + + Mot de passe + + + Valider + + + Editer un administrateur + + + Nom d'utilisateur + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.resx b/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.resx new file mode 100644 index 0000000..5d96373 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Admins.EditAdministrator.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 + + + Password + + + Submit + + + Edit admin + + + Username + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.fr-FR.resx new file mode 100644 index 0000000..f6cf8b0 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.fr-FR.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 + + + Nom + + + Valider + + + Ajouter un chapitre + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.resx b/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.resx new file mode 100644 index 0000000..e15d084 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.AddChapter.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 + + + Name + + + Submit + + + Add chapter + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.Chapters.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Chapters.Chapters.fr-FR.resx new file mode 100644 index 0000000..4be4877 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.Chapters.fr-FR.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 + + + Ajouter + + + Supprimer + + + Éditer + + + Exporter + + + Nom + + + Chapitres + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.Chapters.resx b/Blazor/Blazor/Resources/Pages.Chapters.Chapters.resx new file mode 100644 index 0000000..f39242f --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.Chapters.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 + + + Add + + + Delete + + + Edit + + + Export + + + Name + + + Chapters + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.fr-FR.resx new file mode 100644 index 0000000..c512fd8 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.fr-FR.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 + + + Nom + + + Valider + + + Editer un chapitre + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.resx b/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.resx new file mode 100644 index 0000000..8bf2929 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Chapters.EditChapter.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 + + + Name + + + Submit + + + Edit chapter + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.AddPlayer.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Players.AddPlayer.fr-FR.resx new file mode 100644 index 0000000..d2b15fc --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.AddPlayer.fr-FR.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 + + + Mot de passe + + + Pseudo + + + Envoyer + + + Ajouter un joueur + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.AddPlayer.resx b/Blazor/Blazor/Resources/Pages.Players.AddPlayer.resx new file mode 100644 index 0000000..00b6703 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.AddPlayer.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 + + + Password + + + Nickname + + + Submit + + + Add player + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.EditPlayer.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Players.EditPlayer.fr-FR.resx new file mode 100644 index 0000000..ffca3c1 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.EditPlayer.fr-FR.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 + + + Mot de passe + + + Pseudo + + + Valider + + + Éditer un joueur + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.EditPlayer.resx b/Blazor/Blazor/Resources/Pages.Players.EditPlayer.resx new file mode 100644 index 0000000..dc8f240 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.EditPlayer.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 + + + Password + + + Nickname + + + Submit + + + Edit player + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.Players.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Players.Players.fr-FR.resx new file mode 100644 index 0000000..823ebd6 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.Players.fr-FR.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 + + + Ajouter + + + Supprimer + + + Éditer + + + Pseudo + + + Joueurs + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Players.Players.resx b/Blazor/Blazor/Resources/Pages.Players.Players.resx new file mode 100644 index 0000000..a561243 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Players.Players.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 + + + Add + + + Delete + + + Edit + + + Nickname + + + Players + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.fr-FR.resx new file mode 100644 index 0000000..75c856a --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.fr-FR.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 + + + Réponse n° + + + Chapitre + + + Contenu + + + Valider + + + Ajouter une question + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.resx b/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.resx new file mode 100644 index 0000000..ef26925 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.AddQuestion.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 + + + Answer + ne pas oublier l'espace à la fin de "Answer " + + + Chapter + + + Content + + + Submit + + + Add question + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.fr-FR.resx new file mode 100644 index 0000000..44aa5ad --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.fr-FR.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 + + + Réponse n° + + + Chapitre + + + Contenu + + + Valider + + + Modifier une question + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.resx b/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.resx new file mode 100644 index 0000000..d5b54cc --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.EditQuestion.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 + + + Answer n° + + + Chapter + + + Content + + + Submit + + + Edit question + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.Questions.fr-FR.resx b/Blazor/Blazor/Resources/Pages.Questions.Questions.fr-FR.resx new file mode 100644 index 0000000..7f405a9 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.Questions.fr-FR.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 + + + Ajouter une question + + + Contenu + + + Supprimer + + + Difficulté + + + Éditer + + + Exporter + + + Afficher + + + Questions + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Pages.Questions.Questions.resx b/Blazor/Blazor/Resources/Pages.Questions.Questions.resx new file mode 100644 index 0000000..6a985f3 --- /dev/null +++ b/Blazor/Blazor/Resources/Pages.Questions.Questions.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 + + + Add + + + Content + + + Delete + + + Difficulty + + + Edit + + + Export + + + Show + + + Questions + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Shared.CultureSelector.fr-FR.resx b/Blazor/Blazor/Resources/Shared.CultureSelector.fr-FR.resx new file mode 100644 index 0000000..c41247e --- /dev/null +++ b/Blazor/Blazor/Resources/Shared.CultureSelector.fr-FR.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 + + + Choisissez la langue : + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Shared.CultureSelector.resx b/Blazor/Blazor/Resources/Shared.CultureSelector.resx new file mode 100644 index 0000000..8dcf793 --- /dev/null +++ b/Blazor/Blazor/Resources/Shared.CultureSelector.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 + + + Select your culture : + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Shared.NavMenu.fr-FR.resx b/Blazor/Blazor/Resources/Shared.NavMenu.fr-FR.resx new file mode 100644 index 0000000..1798281 --- /dev/null +++ b/Blazor/Blazor/Resources/Shared.NavMenu.fr-FR.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 + + + Administrateurs + + + Réponses + + + Chapitres + + + Page d'accueil + + + Joueurs + + + Questions + + \ No newline at end of file diff --git a/Blazor/Blazor/Resources/Shared.NavMenu.resx b/Blazor/Blazor/Resources/Shared.NavMenu.resx new file mode 100644 index 0000000..22b9081 --- /dev/null +++ b/Blazor/Blazor/Resources/Shared.NavMenu.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 + + + Administrators + + + Answers + + + Chapters + + + Home + + + Players + + + Questions + + \ No newline at end of file diff --git a/Blazor/Blazor/Shared/CultureSelector.razor b/Blazor/Blazor/Shared/CultureSelector.razor new file mode 100644 index 0000000..c750a80 --- /dev/null +++ b/Blazor/Blazor/Shared/CultureSelector.razor @@ -0,0 +1,43 @@ +@using System.Globalization +@inject NavigationManager NavigationManager + +

+ +

+ +@code +{ + private CultureInfo[] supportedCultures = new[] + { + new CultureInfo("en-US"), + new CultureInfo("fr-FR") + }; + + private CultureInfo Culture + { + get => CultureInfo.CurrentCulture; + set + { + if (CultureInfo.CurrentUICulture == value) + { + return; + } + + var culture = value.Name.ToLower(CultureInfo.InvariantCulture); + + var uri = new Uri(this.NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery, UriFormat.Unescaped); + var query = $"?culture={Uri.EscapeDataString(culture)}&" + $"redirectUri={Uri.EscapeDataString(uri)}"; + + // Redirect the user to the culture controller to set the cookie + this.NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true); + } + } +} \ No newline at end of file diff --git a/Blazor/Blazor/Shared/CultureSelector.razor.cs b/Blazor/Blazor/Shared/CultureSelector.razor.cs new file mode 100644 index 0000000..d4994f1 --- /dev/null +++ b/Blazor/Blazor/Shared/CultureSelector.razor.cs @@ -0,0 +1,11 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; + +namespace Blazor.Shared +{ + public partial class CultureSelector + { + [Inject] + public IStringLocalizer Localizer { get; set; } + } +} diff --git a/Blazor/Blazor/Shared/MainLayout.razor b/Blazor/Blazor/Shared/MainLayout.razor index 39af19b..abd7980 100644 --- a/Blazor/Blazor/Shared/MainLayout.razor +++ b/Blazor/Blazor/Shared/MainLayout.razor @@ -9,7 +9,9 @@
- About +
+ +
diff --git a/Blazor/Blazor/Shared/NavMenu.razor b/Blazor/Blazor/Shared/NavMenu.razor index 08391e1..b40353e 100644 --- a/Blazor/Blazor/Shared/NavMenu.razor +++ b/Blazor/Blazor/Shared/NavMenu.razor @@ -11,27 +11,27 @@ diff --git a/Blazor/Blazor/Shared/NavMenu.razor.cs b/Blazor/Blazor/Shared/NavMenu.razor.cs new file mode 100644 index 0000000..2b0387e --- /dev/null +++ b/Blazor/Blazor/Shared/NavMenu.razor.cs @@ -0,0 +1,11 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; + +namespace Blazor.Shared +{ + public partial class NavMenu + { + [Inject] + public IStringLocalizer Localizer { get; set; } + } +}