ボタンをクリックして Web サイト ( http://cptestlocalisation.azurewebsites.net )の言語を変更することでカルチャと UI カルチャを動的に変更しても、「すべて」の resx フィールドが変更されない (1 つのフィールドのみが変更される) 問題が発生しています。何らかの理由で) 次の App_LocalResources ファイルのフォールバックに基づいています。
Site.Master.resx
Site.Master.fr.resx
Site.Master.zh.resx
ただし、上記はブラウザの言語設定を調整してページを更新する場合にのみ正常に機能します。
内容はそれぞれ次のとおりです。
header.Text Localisation and Globalisation Test Website
login.Text Log In
logout.LogoutText Log Out
menuItemAbout.Text About
menuItemHome.Text Home
header.Text Localisation et mondialisation test Site Web
login.Text Se Connecter
logout.LogoutText Se Déconnecter
menuItemAbout.Text à propos
menuItemHome.Text maison
header.Text 本地化和全球化测试网站
login.Text 登入
logout.LogoutText Log Out
menuItemAbout.Text 关于我们
menuItemHome.Text 登出
コードスニペットが機能しないもの:
<h1 runat="server" enableviewstate="false">
<asp:Localize runat="server" ID="header" meta:resourcekey="header" />
</h1>
機能するもの:
<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
<AnonymousTemplate>
[ <a href="#" ID="HeadLoginStatus" runat="server"><asp:Localize runat="server" ID="login" meta:resourcekey="login" /></a> ]
</AnonymousTemplate>
<LoggedInTemplate>
Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
[ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" meta:resourcekey="logout" LogoutPageUrl="~/"/> ]
</LoggedInTemplate>
</asp:LoginView>
コードビハインド:
protected void btnEnglish_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
InitializeCulture();
}
protected void btnFrench_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fr");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr");
InitializeCulture();
}
protected void btnChinese_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh");
InitializeCulture();
}
Web.config エントリ:
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true" />
この問題の真相を突き止める手助けが必要です。Web サイトが表示されている場合、ボタンをクリックすると、右上隅にあるログイン リンクのみが変更されます。