VS 2019'un son sürümünde blazor 3.1 kullanıyorum.
şimdiye kadar sayfa etiketlerini (başlık, tablo alanları vb.) yerelleştirebiliyorum
Gelen ListEmployee.razor
sayfada i tablo başlığı vb lokalize mümkün ve üzerinde AddEmplyeeValidation.razor
sayfa i Yerelleştirmek formu etiketlere mümkün ama ben sorunu doğrulama mesajı lokalize var.
Doğrulama iletisi için Employee.cs
Doğrulama iletisi, bu dosya ve Resources/Data
klasörde ad olarak tanımlanmış olarak tanımlanıyor Data.Employee.ar.resx
ve Data.Employee.ar.resx
bu çalışmıyor
System.ComponentModel.DataAnnotations kullanarak;
namespace BlazorSPA1.Data {genel sınıf Çalışanı {[MaxLength (50)] genel dize Kimliği {get; Ayarlamak; }
[Required (ErrorMessage ="Name is RRRequired")]
[StringLength(20, ErrorMessage = "Name is too long.")]
public string Name { get; set; }
[Required]
[StringLength(20)]
public string Department { get; set; }
[MaxLength(100)]
public string Designation { get; set; }
[MaxLength(100)]
public string Company { get; set; }
[MaxLength(100)]
public string City { get; set; }
}
}
Nasıl Çalışan Ekle formu için dile dayalı Kaynak dosyalarından doğrulama mesajı yapabilirsiniz.
@page "/addemployeeValidation"
@inject NavigationManager NavigationManager
@inject IEmployeeService EmployeeService
@inject IStringLocalizer<AddEmployeeValidation> L
<h2>Create Employee</h2>
<hr />
<EditForm Model="@employee" OnValidSubmit="@CreateEmployee">
<DataAnnotationsValidator />
<ValidationSummary />
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label for="Name" class="control-label">@L["Name"]</label>
<input for="Name" class="form-control" @bind="@employee.Name" />
<ValidationMessage For="@(()=> employee.Name)" />
</div>
<div class="form-group">
<label for="Department" class="control-label">@L["Department"]</label>
<input for="Department" class="form-control" @bind="@employee.Department" />
</div>
<div class="form-group">
<label for="Designation" class="control-label">@L["Designation"]</label>
<input for="Designation" class="form-control" @bind="@employee.Designation" />
</div>
<div class="form-group">
<label for="Company" class="control-label">@L["Company"]</label>
<input for="Company" class="form-control" @bind="@employee.Company" />
</div>
<div class="form-group">
<label for="City" class="control-label">@L["City"]</label>
<input for="City" class="form-control" @bind="@employee.City" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<input type="submit" class="btn btn-primary" value="Save" />
<input type="button" class="btn" @onclick="@Cancel" value="Cancel" />
</div>
</div>
</div>
</EditForm>
@code {
Employee employee = new Employee();
protected async Task CreateEmployee()
{
await EmployeeService.CreateEmployee(employee);
NavigationManager.NavigateTo("listemployees");
}
void Cancel()
{
NavigationManager.NavigateTo("listemployees");
}
}
Birkaç makale okudum ve birkaç şey denedim ama hiçbir şey işe yaramıyor
Startup.cs` içindeki kod
services.AddServerSideBlazor (options => options.DetailedErrors = true);
services.AddLocalization(options => options.ResourcesPath = "Resources");
var supportedCultures = new List<CultureInfo> { new CultureInfo("en"), new CultureInfo("ar") };
services.Configure<RequestLocalizationOptions>(options =>
{
options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en");
options.SupportedUICultures = supportedCultures;
});
Yerelleştirme için aşağıdaki örneği kullanıyorum, https://www.c-sharpcorner.com/article/localization-in-blazor-server/ hata mesajının nasıl yerelleştirileceğini göstermiyor
Referans için klasör yapısı resmi
İngilizce dosya için kaynak dosyası örneği aynı şekilde Arapça dosya da var
Aşağıdaki ekran görüntüsünde Alan adı Kaynak dosyasından alınacaktır, ancak Doğrulama iletisi yalnızca İngilizce olarak çalışmıyor olarak gösterilir