使用一个全局资源在asp.net Web表单中进行本地化

时间:2011-12-05 08:42:34

标签: asp.net localization resources

我想要一个像这样的资源文件:

Mui.resx
Mui.fr.resx
Mui.es.resx
...

我希望能够在我的代码隐藏中做到这样的事情:

Label1.Text = Mui.Hello;

在我的aspx中是这样的:

<%=Mui.Hello %>

有谁知道怎么做?有可能吗?

3 个答案:

答案 0 :(得分:5)

是的,这是可能的。您可以从File-New- Resource File添加资源文件,然后您可以使用英语或其他语言添加自己的资源键及其值。

检查这些 How to: Retrieve Resource Values ProgrammaticallyASP.NET Web Page Resources Overview

  

使用强类型检索全局资源

  • 使用以下语法获取资源:

      

    Resources.Class.Resource

  •   
  示例:

String welcome;
welcome = Resources.WebResources.WelcomeText;
  

但是如果您使用本地化   您是否查看了此MSDN资源:
  Walkthrough: Using Resources for Localization with ASP.NET

请查看上面链接中的Explicit Localization with ASP.NET部分。

示例:

label的text属性现在有一个显式表达式,说明从中检索资源的基本文件和要选择的键。

<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>">

在您的页面上: 使用资源键的完整路径进行简单调用。

查看这篇精彩的文章 - Resources and Localization,它将为您解释更多相关信息。

编辑 - Web.Config文化设置:
加上这个 <globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>

下的web.config中的<system.web>

如果您想在某些网页上使用,请使用<@Page>指令的CultureUICulture属性。

答案 1 :(得分:2)

添加Resources namespace

Label1.Text = Resources.Mui.Hello;

<%=Resources.Mui.Hello %>

答案 2 :(得分:1)

我遇到了同样的问题,最后发现了解决方案

在浏览器中,如果您选择浏览器语言法语[fr] ,ASP会加载资源。 fr .resx

但是,如果您选择浏览器语言法语(法国)[fr-FR] ASP会加载资源。 fr-FR .resx