최신 버전의 VS 2019에서 blazor 3.1을 사용하고 있습니다.
지금까지 페이지 레이블 (제목, 테이블 필드 등)을 현지화 할 수 있습니다.
에서 ListEmployee.razor
페이지 나 테이블 제목 등을 지역화 할 수 오전에 AddEmplyeeValidation.razor
페이지 내가 로컬 라이즈 양식 라벨 수 있어요하지만 난이 문제를 확인 메시지를 현지화 있습니다.
유효성 검사 메시지의 Employee.cs
유효성 검사 메시지는이 파일 및 Resources/Data
폴더에 이름이 정의되어 정의되어 Data.Employee.ar.resx
있으며 Data.Employee.ar.resx
작동하지 않습니다.
System.ComponentModel.DataAnnotations 사용;
네임 스페이스 BlazorSPA1.Data {공개 클래스 직원 {[MaxLength (50)] 공개 문자열 ID {get; 세트; }
[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; }
}
}
직원 추가 양식의 언어를 기반으로 리소스 파일의 메시지 유효성 검사 방법을 어떻게 알 수 있습니까?
@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");
}
}
나는 기사를 거의 읽지 않고 시도했지만 아무것도 작동하지 않는 것 같습니다.
Startup.cs의 코드`
services.AddServerSideBlazor (옵션 => 옵션 .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;
});
현지화에 다음 예제를 사용하고 있는데 오류 메시지를 현지화하는 방법을 보여주지 않습니다 https://www.c-sharpcorner.com/article/localization-in-blazor-server/
굴절을위한 폴더 구조 이미지
아랍어 파일과 같은 방식으로 영어 버전의 리소스 파일 예제
아래 스크린 샷에서 필드 이름을 리소스 파일에서 가져오고 있지만 유효성 검사 메시지의 경우 작동하지 않는 것으로 영어로만 표시됩니다