Globalisation fonctionnelle pour la page EmployeeData

master
Johnny RATTON 2 years ago
parent 5e8ebf7e2a
commit e258f278f0

@ -1,4 +1,5 @@
@using System.Globalization @using System.Globalization
@using BlazorProject.Pages
@inherits LayoutComponentBase @inherits LayoutComponentBase
<div class="page"> <div class="page">
<div class="sidebar"> <div class="sidebar">

@ -1,6 +1,8 @@
@page "/employee" @page "/employee"
@using BlazorProject.Models @using BlazorProject.Models
@inject IJSRuntime JsRuntime
@inject Microsoft.Extensions.Localization.IStringLocalizer<App> Localize
<h1>@title</h1> <h1>@title</h1>
<br /> <br />
@ -53,7 +55,12 @@
{ {
<tr> <tr>
<td>@emp.Name</td> <td>@emp.Name</td>
<td>@Localize[emp.Gender]</td> @if (@emp.Gender != null)
{
<td>@Localize[emp.Gender]</td>
} else {
<td>@Localize["Unknown"]</td>
}
<td>@emp.City</td> <td>@emp.City</td>
<td>@emp.Salary.ToString("C2")</td> <td>@emp.Salary.ToString("C2")</td>
<td>@emp.JoiningDate</td> <td>@emp.JoiningDate</td>

@ -8,9 +8,6 @@ namespace BlazorProject.Pages;
public partial class EmployeeData public partial class EmployeeData
{ {
[Inject] public IStringLocalizer<App> Localize { get; set; }
[Inject] public IJSRuntime JSRuntime { get; set; }
Employee employee = new Employee(); Employee employee = new Employee();
List<Employee> lstEmployees = new List<Employee>(); List<Employee> lstEmployees = new List<Employee>();
@ -24,7 +21,7 @@ public partial class EmployeeData
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
setTitle(); setTitle();
var empGetJS = (IJSInProcessRuntime)JSRuntime; var empGetJS = (IJSInProcessRuntime)JsRuntime;
var empList = await empGetJS.InvokeAsync<string>("employeeData.get"); var empList = await empGetJS.InvokeAsync<string>("employeeData.get");
FetchEmployeeFromLocalStorage(empList); FetchEmployeeFromLocalStorage(empList);
} }
@ -33,7 +30,7 @@ public partial class EmployeeData
{ {
employee.JoiningDate = DateTime.Now; employee.JoiningDate = DateTime.Now;
lstEmployees.Add(employee); lstEmployees.Add(employee);
var empSetJS = (IJSInProcessRuntime)JSRuntime; var empSetJS = (IJSInProcessRuntime)JsRuntime;
empSetJS.InvokeVoid("employeeData.set", JsonConvert.SerializeObject(lstEmployees)); empSetJS.InvokeVoid("employeeData.set", JsonConvert.SerializeObject(lstEmployees));
employee = new Employee(); employee = new Employee();
} }

@ -1,3 +1,4 @@
@inject IJSRuntime JsRuntime
<div class="col-md-3"> <div class="col-md-3">
<select class="form-control" @bind="Culture"> <select class="form-control" @bind="Culture">
@foreach (var language in supportedLanguages) @foreach (var language in supportedLanguages)

@ -10,14 +10,10 @@ public partial class LanguageSelector
{ {
new CultureInfo("en-US"), new CultureInfo("en-US"),
new CultureInfo("fr-FR"), new CultureInfo("fr-FR"),
new CultureInfo("ar-AE"),
}; };
[Inject] [Inject]
private NavigationManager NavigationManager { get; set; } private NavigationManager NavigationManager { get; set; }
[Inject]
private JSRuntime JsRuntime { get; set; }
private CultureInfo Culture private CultureInfo Culture
{ {

@ -10,6 +10,7 @@ using BlazorProject;
using BlazorProject.Services; using BlazorProject.Services;
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using Microsoft.JSInterop; using Microsoft.JSInterop;
using Microsoft.JSInterop.WebAssembly;
var builder = WebAssemblyHostBuilder.CreateDefault(args); var builder = WebAssemblyHostBuilder.CreateDefault(args);
@ -30,7 +31,7 @@ builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.
builder.Services.AddLocalization(options => options.ResourcesPath = "Ressources"); builder.Services.AddLocalization(options => options.ResourcesPath = "Ressources");
builder.Services.AddScoped<IStringLocalizer<App>, StringLocalizer<App>>(); //builder.Services.AddScoped<IStringLocalizer<App>, StringLocalizer<App>>();
var jsInterop = builder.Build().Services.GetRequiredService<IJSRuntime>(); var jsInterop = builder.Build().Services.GetRequiredService<IJSRuntime>();

@ -98,5 +98,11 @@ namespace BlazorProject.Ressources {
return ResourceManager.GetString("Save", resourceCulture); return ResourceManager.GetString("Save", resourceCulture);
} }
} }
internal static string Unknown {
get {
return ResourceManager.GetString("Unknown", resourceCulture);
}
}
} }
} }

@ -99,9 +99,9 @@ namespace BlazorProject.Ressources {
} }
} }
internal static string Title { internal static string Unknown {
get { get {
return ResourceManager.GetString("Title", resourceCulture); return ResourceManager.GetString("Unknown", resourceCulture);
} }
} }
} }

@ -45,4 +45,7 @@
<data name="Save" xml:space="preserve"> <data name="Save" xml:space="preserve">
<value>Sauvegarder</value> <value>Sauvegarder</value>
</data> </data>
<data name="Unknown" xml:space="preserve">
<value>Inconnu</value>
</data>
</root> </root>

@ -45,4 +45,7 @@
<data name="Save" xml:space="preserve"> <data name="Save" xml:space="preserve">
<value>Save</value> <value>Save</value>
</data> </data>
<data name="Unknown" xml:space="preserve">
<value>Unknown</value>
</data>
</root> </root>
Loading…
Cancel
Save