Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# App_GlobalResources在asp.net中不支持多语言_C#_Asp.net_App Globalresources - Fatal编程技术网

C# App_GlobalResources在asp.net中不支持多语言

C# App_GlobalResources在asp.net中不支持多语言,c#,asp.net,app-globalresources,C#,Asp.net,App Globalresources,代码隐藏: ResourceManager rm; CultureInfo ci; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Session["Flag"] = null; Session["Language"] = null; Thread.CurrentTh

代码隐藏:

 ResourceManager rm;
    CultureInfo ci;
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            Session["Flag"] = null;
            Session["Language"] = null;
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            rm = new ResourceManager("Resources.Language",
                     System.Reflection.Assembly.Load("App_GlobalResources"));
            ci = Thread.CurrentThread.CurrentCulture;
            LoadLanguage(ci);

        }
    }
    private void LoadLanguage(CultureInfo ci) 
    {
        lblHindi.Text = rm.GetString("Hindi", ci);
        lblTelugu.Text = rm.GetString("Telugu", ci);

    }
我的App_GlobalResources文件夹中有以下文件

设计:

   <center>




        <a href="Default.aspx"><asp:Label ID="lblHindi" runat="server" Text="Hindi"></asp:Label></a>
        <br />
 <br />

        <a href="Default.aspx"><asp:Label ID="lblTelugu" runat="server" Text="Telugu"></asp:Label></a>
  <br />
        </center>




但是它不起作用我该怎么办


请帮助

您可以添加并尝试此代码吗

“protected override void InitializeCulture()”->用于调用重写应用程序层区域性的方法

protected override void InitializeCulture()
{
    //...
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    base.InitializeCulture();
    ci = Thread.CurrentThread.CurrentCulture;
    //...
}

private void LoadLanguage(CultureInfo ci) 
{
    lblHindi.Text = rm.GetString("Hindi", ci);
    lblTelugu.Text = rm.GetString("Telugu", ci);

}

你写的代码非常好。问题似乎在于从资源文件访问字符串的方式。您必须在每个资源文件中维护相同的密钥,而值将被翻译成不同的语言。假设您将在Language.resx文件中创建一个具有英文值的密钥“SOME_KEY1”。在其他resx文件中创建具有不同值的同一密钥,并以其他语言翻译。之后,您可以按如下方式访问已翻译的字符串:

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session["Flag"] = null;
                Session["Language"] = null;

                rm = new ResourceManager("Resources.Language",
                         System.Reflection.Assembly.Load("App_GlobalResources"));

                LoadLanguage();
            }
        }

        private void LoadLanguage()
        {
            lblHindi.Text = rm.GetString("SOME_KEY1", new CultureInfo("hi-IN"));
            lblTelugu.Text = rm.GetString("SOME_KEY1", new CultureInfo("te-IN"));
        }

我在哪里调用LoadLangauage方法