Я хочу использовать пользовательские файлы ресурсов для отображения на нескольких языках (например: WebUI.en-us.resx) , WebUI.fr-fr.resx для отображения текста в формате .cshtml и WebMessage.en-us.resx, WebMessage.fr-fr.resx для ответа на сообщение на сервере).
Но в настоящее время .net 8 автоматически сопоставить базу ресурсов с представлениями, как показано ниже, чтобы получить ресурс для страницы:
Есть ли у кого-нибудь эффективный метод или решение для использования именно тех файлов ресурсов, которые мне нужны на страницах Razor?Спасибо всем!
Моя программа.cs:
builder.Services.AddRazorPages(options =>
{
options.Conventions.AllowAnonymousToPage("/Login");
})
.AddMvcOptions(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})
.AddMicrosoftIdentityUI()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");
var app = builder.Build();
var supportedCultures = new[] { new CultureInfo("en"), new CultureInfo("fr") };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
Я попробовал использовать ChatGPT для решения, как показано ниже, но это все равно не работает.
namespace YourNamespace
{
public class GlobalResources { }
public class Global2Resources { }
public class Global3Resources { }
}
@using Microsoft.Extensions.Localization
@inject IStringLocalizer Localizer1
@inject IStringLocalizer Localizer2
@Localizer1["Test"]
@Localizer2["AnotherTest"]
Подробнее здесь: https://stackoverflow.com/questions/791 ... ages-net-8
Мобильная версия