Как применить глобализацию на пользовательском веб-контроле в 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)