C# ASP.NET网站的本地化不起作用

C# ASP.NET网站的本地化不起作用,c#,asp.net,localization,globalization,C#,Asp.net,Localization,Globalization,我试图本地化一个asp.net网站,但它不能正常工作 目前,我有一个用户控件,我希望将其本地化。因此,在UserControls文件夹中,我创建了一个App\u LocalResources文件夹,以及4个用于本地化的文件: UCMain.aspx.resx UCMain.aspx.it-it.resx UCMain.aspx.de-de.resx UCMain.aspx.fr-fr.resx 在UserControls文件夹中,我有mainUCMain.aspx,在UCMain.aspx中,我

我试图本地化一个asp.net网站,但它不能正常工作

目前,我有一个用户控件,我希望将其本地化。因此,在UserControls文件夹中,我创建了一个
App\u LocalResources
文件夹,以及4个用于本地化的文件:

  • UCMain.aspx.resx
  • UCMain.aspx.it-it.resx
  • UCMain.aspx.de-de.resx
  • UCMain.aspx.fr-fr.resx
  • 在UserControls文件夹中,我有main
    UCMain.aspx
    ,在UCMain.aspx中,我有以下简单文件:

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UCMain.ascx.cs" Inherits="SCPerformance.UserControls.UCMain" %>
    
    <%@ Import Namespace="SCPerformance.Shared.Models" %>
    
    <div class="PanelContainer">
    
        <div class="ContentTitle2">
            <asp:Label runat="server" ID="lblAboutText" meta:resourcekey="lblAboutTextResource1" />
        </div>
    
    </div>
    
    当我单击已有的标志时,区域性设置正确,因此这不是问题所在。问题是检索实际文本,我总是得到英文版本

    我有什么问题


    感谢您的帮助和时间。

    这是另一个适用于我的asp网站的解决方案,使用4种语言​​在我的“GlobalResource”文件夹中。 你试过这个选项吗

    C#——重载函数初始化文化

        protected override void InitializeCulture()
        {
            try
            {
                string langID = "fr-FR";
    
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(langID);
                base.InitializeCulture();
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }
        }
    
    ASP-->

    
    
    线程.CurrentThread.CurrentCulture的输出是什么?如果您的应用程序中有匹配的区域性,那么您在该资源文件中是否确实有名为
    lblAboutTextResource1
    的资源密钥?嗨,matty,这取决于我单击的标志,是的,我得到的是CurrentCulture,是的,我有一个使用正确语言的资源文件,以下代码在后台工作:-lblAboutText.Text=(string)GetLocalResourceObject(“lblAboutTextResource1.Text”);您没有在加载页面上设置区域性,是吗?如果是这样的话,那么在请求生命周期中就太晚了,因为在此之前会检索到控件的文本。不过,这不一定要在GlobalResources中吗?
        protected override void InitializeCulture()
        {
            try
            {
                string langID = "fr-FR";
    
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(langID);
                base.InitializeCulture();
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
            }
        }
    
    <asp:Label runat="server" ID="lblAboutText" Text="<%$ Resources:UCMain,lblAboutTextResource1 %>" ></asp:Label>