英語用 (LocalStrings) とドイツ語用 (de-DE) の 2 つのリソース ファイルを使用して、以下を実装しました。ドロップダウンを変更しても、言語は変更されません。Visual Studio または Firebug によってではなく、エラーは発生しません。何かアドバイス?
<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" uiculture="auto" Culture="auto:de-DE" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1" Text="<%$ Resources:LocalStrings, LastName %>"></asp:Label>
<br />
<br />
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="LocalStrings">English</asp:ListItem>
<asp:ListItem Value="de-DE">German</asp:ListItem>
</asp:DropDownList>
</form>
</body>
</html>
コードビハインド
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void InitializeCulture()
{
string cult = Request.Form["DropDownList1"];
if (cult != null)
{
String selectedLanguage = cult;
UICulture = selectedLanguage;
Culture = selectedLanguage;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
}
base.InitializeCulture();
}
}