Как применить глобализацию на пользовательском веб-контроле в asp.net C#

Я применил глобализацию на странице по умолчанию, но он не применяется на веб-контроле пользователя. Я создал Header.ascx и поставил две кнопки LinkButton: один для английского и второй для испанского. я использую код в заголовке кода code.ascx ниже...

этот код для английского

 protected void lbtnEng_Click(object sender, EventArgs e)
    {

        HttpCookie cookie = new HttpCookie("CultureInfo");
        cookie.Value = "en";
        Response.Cookies.Add(cookie);
        Thread.CurrentThread.CurrentCulture = new CultureInfo("en");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
        Server.Transfer(Request.Path);

    }

этот код для испанского языка

protected void lbtnSpan_Click(object sender, EventArgs e)
{

    HttpCookie cookie = new HttpCookie("CultureInfo");
    cookie.Value = "es-mx";
    Response.Cookies.Add(cookie);
   Thread.CurrentThread.CurrentCulture =  new CultureInfo("es-mx");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-mx");
    Server.Transfer(Request.Path);
  }

этот код изменяет язык в тексте метки страницы по умолчанию, но не в метке пользовательского веб-элемента управления.

<asp:Label ID="lbl_test" runat="server" Text="<%$ Resources:Resource, Test %>"></asp:Label>

и на веб-контроль

<asp:Label ID="lbl_test" runat="server" Text="<%$ Resources:Resource, Test %>"></asp:Label>

1 ответ

Вы можете установить только один язык за раз. Для достижения вашей цели. Используйте статические строки или возьмите один файл ресурсов, который состоит из пар ключ-значение. Это пример для отправки ключа.

ResourceFileForStaticStrings.resx

Key                   Value
submitEnglish         Submit
submitSpanish         Presentar

Сохраните его в сеансе или файле cookie: попробуйте следующий

System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(Session("es").ToString)  
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(Session("es").ToString)
Другие вопросы по тегам