我正在尝试在我的应用程序中设置文化。这是我的代码:
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
我首先尝试将其设置为MasterPage.master。我有 MasterPage.master.resx 和 MasterPage.master.fr.resx 。这两个文件在属性中设置为Embedded Ressouce。
这是我的aspx元素:
<asp:LinkButton runat="server" Text="" ID="lnkLangue" OnClick ="lnkLangue_Click" meta:resourcekey="lnklangue" ></asp:LinkButton>
我在两个resx文件(en和fr)中设置了lnkLangue.Text。
我的问题是文化始终是英语,而不是法语。我可以将文化设置为&#34; fr-CA&#34;,没有任何工作(没有法语,只有英语)。 我尝试在PageLoad事件中设置文化,Preinit,点击按钮等,没有任何效果。
我正在使用框架4.0
我错过了什么吗?
答案 0 :(得分:2)
您需要在每个需要本地化的页面上覆盖以下方法,或者从覆盖InitializeCulture方法的基页继承。
protected override void InitializeCulture()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
base.InitializeCulture();
}