Глобализация и локализация в dotnet core web api 3.1 с использованием VSCode
Я хочу добавить глобализацию и локализацию в dotnet core webapi, хотя я пробовал использовать следующую ссылку. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-3.1
Однако мне это не удалось.
Вот мой код Startup.cs...
services.AddLocalization(options => options.ResourcesPath = "Resources/Localization");
services.AddControllers()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix, options => { options.ResourcesPath = "Resources/Localization"; })
.AddDataAnnotationsLocalization();
services.Configure<RequestLocalizationOptions>(options =>
{
var cultures = new []
{
new CultureInfo("en"),
new CultureInfo("fa")
};
options.DefaultRequestCulture = new RequestCulture("en");
options.SupportedCultures = cultures;
options.SupportedUICultures = cultures;
});
Метод настройки содержит следующее
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, Seed seeder)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// app.UseHttpsRedirection();
app.UseRouting();
//ADDING LOCATIONLIZATION
app.UseRequestLocalization(app.ApplicationServices.GetRequiredService<IOptions<RequestLocalizationOptions>>().Value);
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Вот структура папок Resources/Localization с файлами.resx.
Наконец, когда я создаю dotnet api с помощью команды dotnet build, он выдает следующую ошибку в Visual Studio Code Terminal.
/Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.en.resx: ошибка MSB3103: недопустимый файл Resx. System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj] /Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.en.resx: ошибка MSB3103:... /Resources/Localization/ERPEra.fa.resx: ошибка MSB3103: недопустимый файл Resx. System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj] /Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.fa.resx: ошибка MSB3103: в Microsoft.Build.Tasks.ResourceHandling.MSBuildResXReader.ReadResources(StreamleTan), путь к файлу String, String [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj]
Сборка НЕ выполнена.
/Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.en.resx: ошибка MSB3103: недопустимый файл Resx. System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj] /Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.en.resx: ошибка MSB3103:... /Resources/Localization/ERPEra.fa.resx: ошибка MSB3103: недопустимый файл Resx. System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj] /Users/naimdahee/Desktop/ERPEra/ERPEra.API/Resources/Localization/ERPEra.fa.resx: ошибка MSB3103: в Microsoft.Build.Tasks.ResourceHandling.MSBuildResXReader.ReadResources(StreamleTan), путь к файлу String, String [/Users/naimdahee/Desktop/ERPEra/ERPEra.API/ERPEra.API.csproj] 0 Предупреждение (я) 2 Ошибка (я)