Переключение языков с помощью файлов ресурсов по ссылке Actionlink без обновления страницы Содержание - PullRequest
0 голосов
/ 05 апреля 2019

Я работаю над сайтом asp.net, который имеет многоязычную функциональность. В настоящее время мой код работает с переключателем языка и отображает содержимое формы на выбранном языке, но если пользователь решит переключить язык после частичного заполнения формы, мой код обновляет страницу, и данные формы теряются в процессе.

Я попытался установить измененный язык, используя cookie.

Код языкового контроллера -

public ActionResult Change(String Language)
        {
            if(Language != null)
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Language);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(Language);
            }

            HttpCookie cookie = new HttpCookie("Language");
            cookie.Value = Language;
            Response.Cookies.Add(cookie);

            return View("Index");
        }

Индексный просмотр -

    <li>@Html.ActionLink("English", "Change", "Language", new { Language = "en"}, null)</li>
    <li>@Html.ActionLink("Françe", "Change", "Language", new { Language = "fr" }, null)</li>
    <li>@Html.ActionLink("spanish", "Change", "Language", new { Language = "es"}, null)</li>

Global.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"];
            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("en");
                System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
            }
        }

Можно ли переключать язык и содержимое страницы без обновления страницы?

1 Ответ

0 голосов
/ 05 апреля 2019

Вы говорите о переводе на стороне клиента.Это означает, что ресурсы перевода должны присутствовать на странице при смене языка.Вы можете сделать это с помощью некоторого пользовательского javascript [не рекомендуется].

Это приводит к вопросу, откуда будут поступать ресурсы?Например, если у вас есть какой-либо контент, например «Мой проект на английском», как система узнает, на что переводить?например, с помощью Google Translate. Вот способ сделать это .

...