Локализовать приложение по нажатию кнопки - PullRequest
3 голосов
/ 23 мая 2011

У меня в проекте mainMaster страницы были локации imageButtons:

<asp:ImageButton ID="RU" ImageUrl="/Images/RU.png" runat="server" onclick="RU_Click">                
<asp:ImageButton ID="USA" ImageUrl="/Images/USA.png" runat="server" onclick="USA_Click" />  

вот функции OnClick:

protected void RU_Click(object sender, ImageClickEventArgs e)
{
    Session["MyCulture"] = CultureInfo.CreateSpecificCulture("ru-RU");
    Server.Transfer(Request.Url.LocalPath);     
}

protected void USA_Click(object sender, ImageClickEventArgs e)
{
    Session["MyCulture"] = CultureInfo.CreateSpecificCulture("en-AU");
    Server.Transfer(Request.Url.LocalPath);  
}

также у меня есть два файла .resx, но как я могу связать кнопки с

<asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:Main, Name%>" />

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Ваш вопрос не ясен, но позвольте мне прояснить для вас одну вещь, которая может быть вашей проблемой.

Вы можете установить Культуру только в событии InitializeCulture:

protected override void InitializeCulture()
{
    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-AU");
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-AU");
    base.InitializeCulture();
}
0 голосов
/ 23 мая 2011

Используйте этот код:

protected void RU_Click(object sender, EventArgs e)
{
    SetCulture("ru-RU");
}

protected void USA_Click(object sender, EventArgs e)
{
    SetCulture("en-UA");
}

public static void SetCulture(string culture)
{
    CultureInfo cultureInfo = new CultureInfo(culture);
    Thread.CurrentThread.CurrentCulture = cultureInfo;
    Thread.CurrentThread.CurrentUICulture = cultureInfo;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...