2013-05-29 62 views
1

我想本地化一个asp.net网站,但它不能正常工作。本地化的ASP.NET网站不工作

目前我有一个用户控件,我希望本地化。因此,用户控件文件夹内,我已经创建了一个文件夹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

在用户控件文件夹,我的主要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 

文化是否设置正确,当我点击我的标志,所以这是没有问题的。问题是检索实际的文本,我总是得到英文版本。

可能是我的问题?

感谢您的帮助和时间。

+0

什么Thread.CurrentThread.CurrentCulture的输出?如果这在应用程序中是一种匹配文化,那么您是否肯定在该资源文件中有一个名为'lblAboutTextResource1'的资源键? – mattytommo

+0

嗨matty,取决于我点击的国旗,是的,我得到一个CurrentCulture,是的,我有一个资源文件,用正确的语言 – Johann

+0

下面的代码在后面的代码: - lblAboutText.Text =(字符串)GetLocalResourceObject ( “lblAboutTextResource1.Text”); – Johann

回答

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

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

虽然不必在GlobalResources中? – Johann