簡體   English   中英

如何使用ASP.Net中的資源文件從主頁更改應用程序的語言

[英]How to change language for an application from masterpage using ressource files in ASP.Net

我在C.ASP.Net中有一個應用。 在aspx文件的母版頁中,我有3種具有3種語言的圖像按鈕:英語,法語,羅馬尼亞語:

<asp:ImageButton ID="ImgRo" ImageUrl="~/Images/Romania Flag.png" runat="server" 
                 Height="25px" ToolTip="RO" style="border-color:black; 
                 background-color:black" OnClick="ImgRo_CLick"/>|
<asp:ImageButton ID="ImgEn" ImageUrl="~/Images/United States Flag.png" runat="server" 
                 Height="25px" ToolTip="EN" style="border-color:black; 
                 background-color:black" OnClick="ImgEn_CLick"/>|
<asp:ImageButton ID="ImgFr" ImageUrl="~/Images/France Flag.png" runat="server" 
                 Height="25px" ToolTip="FR" style="border-color:black; 
                 background-color:black" OnClick="ImgFr_CLick"/>|

當我單擊每個事件中的一個時,我有一些事件可以在會話中保存所選的語言:

protected void ImgRo_CLick(object sender, EventArgs e)
{
    SaveLanguage("Ro");
}
protected void ImgEn_CLick(object sender, EventArgs e)
{
    SaveLanguage("En");
}
protected void ImgFr_CLick(object sender, EventArgs e)
{
    SaveLanguage("fr-Fr");
}

protected void SaveLanguage(string language)
{
    Session[AppDefs.LANGUAGE] = language;
    Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
}

public string GetLanguage()
{

    if (Session[AppDefs.LANGUAGE] != null)
    {
        return Session[AppDefs.LANGUAGE].ToString();
    }
    else
    {
        return "en";
    }
}

在主頁面中,我打開登錄頁面,然后打開其他頁面。 從母版頁中進行選擇時,如何更改所有頁面的UICulture?

我在登錄頁面上嘗試了preinit事件,但是沒有用:

protected void Page_PreInit(object sender, EventArgs e)
{
   UICulture = Master.GetLanguage();//"fr-FR"
}

謝謝

將區域性名稱存儲在會話變量中是一個不錯的開始,但是您必須為每個請求更改CurrentThread中的線程區域性。 在PreInit中嘗試以下代碼:

var language = Master.GetLanguage();
Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM