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

时间:2013-05-29 11:20:06

标签: c# asp.net localization globalization

我正在尝试本地化一个asp.net网站,但它无法正常工作。

目前我有一个用户控件,我希望本地化。所以在UserControls文件夹中,我创建了一个App_LocalResources文件夹,以及4个用于本地化的文件:

  1. UCMain.aspx.resx
  2. UCMain.aspx.it-IT.resx
  3. UCMain.aspx.de-DE.resx
  4. UCMain.aspx.fr-FR.resx
  5. 在UserControls文件夹中,我有主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>
    

    在本地化文件(resx)中,我对所有语言都有以下内容:

    Name                            Value
    lblAboutTextResource1.Text      Informazione
    

    当我点击我的旗帜时,文化设置正确,所以这不是问题。问题是检索实际文本,我总是得到英文版。

    可能是我的问题?

    感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:0)

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

C# - 重载函数InitializeCulture

    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 - &gt; &lt;%$资源:[资源目录名称],[资源标签名称]%&gt;

<asp:Label runat="server" ID="lblAboutText" Text="<%$ Resources:UCMain,lblAboutTextResource1 %>" ></asp:Label>