У меня есть два проекта в моем решении. DataAccess - с базовыми моделями для совместного использования в других компонентах, таких как службы и т. Д.
Web - сетевое базовое веб-приложение
Мне нужно использовать локализацию для аннотаций данных - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-3.0#dataannotations-localization
Но я не знаю, как настроить файл ресурсов в этом случае, или, точнее, сказать, куда его поместить.
Класс размещен там
DataAccess.Core.Product
Со свойствомИмя и пометка
[Display(Name = "Name")]
Я использую этот класс в своих представлениях и веб-проекте в качестве модели представления
@model DataAccess.Core.ProductGroup
с использованием
<label asp-for="Name" class="control-label"></label>
Я попытался поставитьфайл ресурсов для веб-проекта, например
/Resources/DataAccess/Core/Product.cs.resx
, контроллер локализации работает нормально для меня
/Resources/Controllers/ProductController.cs.resx
и с использованием
IStringLocalizer<ProductGroupsController>
Конфигурация запуска:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization()
.AddSessionStateTempDataProvider();`
var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("cs-CZ"),
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});