Asp.net文化如何正确设置它

时间:2014-05-29 19:13:37

标签: c# asp.net localization cultureinfo culture

我正在尝试在我的应用程序中设置文化。这是我的代码:

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

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您需要在每个需要本地化的页面上覆盖以下方法,或者从覆盖InitializeCulture方法的基页继承。

protected override void InitializeCulture()
{
   Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
   Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
   base.InitializeCulture();
}