локализация mvc, файлы ресурсов не загружаются - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь сделать функцию локализации в своем проекте

У меня есть <li>@Html.ActionLink(Resources.HomeTexts.Home, "Index", "Home")</li> для меню.Также у меня есть переключатель языка

<li>@Html.ActionLink("French", ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { lang = "fr" }, null)</li>

У меня есть файл файла ресурсов GomeTexts.fr.resx, где я устанавливаю для настраиваемого инструмента значение PublicResXFileCodeGenerator и ресурсы пространства имен настраиваемого инструмента.

У меня есть настройка конфигурации

    routes.MapRoute(
    name: "DefaultLocalized",
    url: "{lang}/{controller}/{action}/{id}",
    constraints: new { lang = @"(\w{2})|(\w{2}-\w{2})" },   // en or en-US
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, lang="en" }
    );

У меня есть Global.asax

protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpCookie cookie = HttpContext.Current.Request.Cookies["lang"];
    if(cookie!=null && cookie.Value != null)
    {
        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value);
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value);
    }
    else
    {
        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr");
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr");
    }
}

У меня есть контроллер

public ActionResult Index(string lang)
{
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
    return View();
}

Но ничего не помогает, да, когда я нажимаю по-французски в адресной строке, я вижу fr, ноязык по-прежнему берется из панели ресурсов по умолчанию.Я даже установил «fr» вручную, но все равно ничего.Что я делаю, возможно, не так?

...