【问题标题】:Asp.net culture how to set it properlyasp.net文化如何正确设置
【发布时间】:2014-05-29 19:13:36
【问题描述】:

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

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");

我正在尝试先将其设置为 MasterPage.master。我有 MasterPage.master.resxMasterPage.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。

我的问题是文化总是用英语而不是法语。我可以将文化设置为“fr-CA”,没有任何效果(没有法语,只有英语)。 我尝试在 PageLoad 事件、Preinit、按钮单击等中设置文化,但没有任何效果。

我正在使用框架 4.0

我错过了什么吗?

【问题讨论】:

  • 您在哪里设置文化?哪个活动?
  • 这是我不知道的,在哪里设置?我到处都试过了
  • 通过向我们展示一些代码来定义“无处不在”。
  • 在页面加载事件中,preinit,在按钮点击时,我在问题中说过
  • 在页面上尝试 PreInit 事件,而不是母版页,看看是否有效。另外,请通过更改资源的英文版本并查看该资源是否显示在页面上来确认资源是否有效。

标签: c# asp.net localization cultureinfo culture


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2020-04-15
    • 1970-01-01
    相关资源
    最近更新 更多