Привет, я пытаюсь реализовать локализацию в ядре .net.Я хочу реализовать локализацию в моих представлениях статического контента.По умолчанию он показывает немецкий язык и может быть изменен на другие языки.Я настроил его, чтобы установить культуру по умолчанию на немецкий, но он не работает.Пожалуйста, помогите
Что я пробовал: -
В моем файле запуска
public void ConfigureServices(IServiceCollection services)
{
//adding HttpContextAccessor middleware
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddRouting(options => options.LowercaseUrls = true);
services.AddMvc();
//configuration for multilanguage support
services.AddLocalization();
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
//adding other services...
ConfigureBusinessServices(services);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
var supportedCultures = new[]{
new CultureInfo("en-US"),
new CultureInfo("fr"),
new CultureInfo("de"),
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("de"),
// Formatting numbers, dates, etc.
SupportedCultures = supportedCultures,
// UI strings that we have localized.
SupportedUICultures = supportedCultures
});
app.UseStaticFiles();
app.UseSession();
//configuring mvc routes...
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
}
В моем представлении я сделал это: -
@TestProject.Resources.TestProjectUI.Home.ContactUs.btn_TextSendMessage
для отображения значения ресурса
Я получаю данные из файла ресурсов, но из файла ресурсов на английском языке, потому что текущая культура настроена на английский Великобритания.Я получаю вывод, как это:
![enter image description here](https://i.stack.imgur.com/eEpoP.png)
Текущая культура отображается как английский, из-за чего приходит сообщение (Отправить сообщение Английская культура)из файла En.resx.