Как получить локализованную строку от контроллера Core ASP.NET с помощью IstringLocalizer?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить локализованную строку от контроллера Core ASP.NET с помощью IstringLocalizer?

Сообщение Anonymous »

Вроде как запутался здесь, супер простой пример локализации Hello-World в ASP.NET Core 2.0. My About page is set up to render two localized strings:
  • From the view (using IViewLocalizer)
  • From code (using IStringLocalizer via the controller)
Код в контроллере < /strong> отказывается получить строку LOC соответствующим образом. Это не сложно, какие очевидные вещи мне не хватает? < /p>

about.cshtml

Код: Выделить всё

@using Microsoft.AspNetCore.Mvc.Localization

@inject IViewLocalizer Localizer
@{
ViewData["Title"] = "About";
}
@ViewData["Title"]
@ViewData["Message"]

@Localizer["Use this area to provide additional information."]
^ Примечание. Две строки: «Сообщение» будет локализовано в коде с использованием istringlocalizer (см. Homecontroller ниже), а @localizer будет использовать iviewlocalizer

функциональный />

Код: Выделить всё

public class HomeController : Controller
{
private readonly IStringLocalizer _localizer;

public HomeController(IStringLocalizer localizer)
{
_localizer = localizer;
}

public IActionResult Index()
{
return View();
}

public IActionResult About()
{
ViewData["Message"] = _localizer["Your application description page."];

return View();
}
}
< /code>

[b] startup.cs < /strong> (соответствующие части) < /p>

    public void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");

services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();

services.Configure(options =>
{
var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("fr-CH"),
};

options.DefaultRequestCulture = new RequestCulture(culture: "en-US", uiCulture: "en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var locOptions = app.ApplicationServices.GetService();
app.UseRequestLocalization(locOptions.Value);

if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}

app.UseStaticFiles();

app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
< /code>

 Ресурсы: < /strong> < /p>

views.home.about.fr-ch.resx

^ с двумя значениями в ней: < /p>


 ». = "Используйте это
область ... успех для FR-Ch!" < /li>
 «Страница описания вашего приложения.» =
"Ваше приложение Description ... Успех для FR-CH!" < /li>
< /ul>

 мои результаты: < /strong> < /p>

localhost: 56073 /home /about < /p>

На самом деле жестко закодированный) 

localhost: 56073/home/about? Culture = fr-ch 

^ Это делает только 2-ю строку: «Используйте эту область ... Успех для FR-CH!», Который   ясно означает, что весь код, который используется, работает  [/b] и.  < /p>

Но первая строка (установленная в коде как viewdata ["message"] < /code>) не получает версию FR-CH!  Это похоже на istringlocalizer  < /code>  неудачный < /strong>, чтобы понять, что был указан LANG, или не удалось найти FR-CH.RESX, который явно доступен. Фабрика для HomeController CTOR как IstringLocalizerFactory Factory 
, также без любви, все еще не получая ресурс FR-CH. Вздох. ASP.NET CORE 2.0

Подробнее здесь: https://stackoverflow.com/questions/485 ... glocalizer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить локализованную строку из основного контроллера ASP.NET с помощью IStringLocalizer?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как мне получить локализованную строку шаблона даты?
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как мне получить локализованную строку шаблона даты?
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»