2011-05-23 41 views
3

我有我的項目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%>" /> 
+3

什麼是你的問題? – Oded 2011-05-23 13:03:41

+0

我不明白如何鏈接CultureInfo與onklick buttun函數,並在這樣的頁面上切換文字文字:Text =「<%$ Resources:Main,Name%>」 – 2011-05-23 13:08:10

+0

請修改您的問題並添加實際問題而不是在評論中。 – Oded 2011-05-23 13:09:33

回答

-1

使用按鈕下面的代碼:

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; 
} 

設置當前的文化,因此本地化可能會生效。

+0

Downote?請澄清。 – abatishchev 2011-05-23 13:31:16

+0

好的。像這樣我柺杖開關文化。所以我需要切換頁面上文字的文本:」/>。如果我有文件Main.rus.resx和Main.usa.resx與名稱:ProductType和值:「字符串名稱_1」如何管理這? – 2011-05-23 13:45:43

+0

@Darien:您需要命名與文化名稱對應的資源文件,例如'Main.aspx.ru-RU.resx'並將其放入'〜/ App_LocalResources' IIRC – abatishchev 2011-05-23 14:32:57

1

你的問題不清楚,但讓我爲你清楚一件事,那可能是你的問題。

只能在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(); 
}