मैं वीएस 2019 के नवीनतम संस्करण में ब्लेज़र 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)] सार्वजनिक स्ट्रिंग आईडी {प्राप्त करें; सेट; }
[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 (विकल्प => विकल्प। डीटेल्डरर्स = सत्य);
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/
रेफरी के लिए फ़ोल्डर संरचना छवि
अंग्रेजी संस्करण के लिए संसाधन फ़ाइल उदाहरण उसी तरह से है जैसे मेरे पास अरबी फ़ाइल भी है
स्क्रीनशॉट के नीचे आपको फील्ड का नाम रिसोर्स फाइल से खींचा जा रहा है, लेकिन वैलिडेशन मैसेज के लिए केवल अंग्रेजी में ही काम नहीं करना है