代码之家  ›  专栏  ›  技术社区  ›  Mike Cole

ASP.NET本地化不适用于我

  •  1
  • Mike Cole  · 技术社区  · 14 年前

    我知道我做了一件根本错误的事情,但我不太明白…

    我的app_globalresources文件夹中有两个资源文件:global.resx和global.fr-ca.resx。

    我的网络表单上有以下标签:

    <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Global, Test %>" />
    

    当我运行表单时,它会正确显示global.resx中的值。现在,在代码隐藏中,我想手动将区域性更改为从fr ca resx文件中提取:

    Page.UICulture = "fr";
    Page.Culture = "fr-CA";
    

    但是,当我重新运行应用程序时,它不会从global.fr-ca.resx中提取值-它仍然从global.resx中提取值。我做错什么了?

    谢谢!!

    1 回复  |  直到 14 年前
        1
  •  3
  •   Frédéric Hamidi    14 年前

    您应该覆盖 InitializeCulture() page类的方法,并同时设置 Page.Culture Page.UICulture 到特定的文化 fr-CA :

    protected override void InitializeCulture()
    {
        base.InitializeCulture();
        Page.Culture = Page.UICulture = "fr-CA";
    }