ASP.Net に C# を使用したアプリケーションがあります。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"/>|
それぞれの 1 つをクリックすると、選択した言語をセッションに保存するイベントがあります。
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"
}
ありがとう