我什么时候应该使用Localize控件而不是Literal?

时间:2011-02-25 22:12:52

标签: c# asp.net localization controls

我最近在ASP.NET 4.0 MCTS认证课程的实验室中了解了System.Web.UI.WebControls.Localize控件。我不清楚这种控制的目的。

在示例中,Literal控件和Localize控件似乎或多或少可互换。检查后,Localize控件似乎继承自Literal,但不提供其他功能。它使用了一个不同的设计器类,在我看来,它的能力不如文字的设计者类。

所以,让我感到困惑。文字 可本地化的已经。什么是Localize控件用于? 应该我使用它,在什么情况下?

2 个答案:

答案 0 :(得分:33)

我很欣赏这已被标记为已回答,但这是另一种看待它的方法。

<asp:Localize>用于指定资源定义项,它强制IDE显示一些指定的文本,并且仍然允许它在运行时解析为网站的语言。

这对于开发网站内容实际上使用不同语言的网站非常有用。因此,您可以成为一名讲英语的程序员,使用土耳其语创建一个网站,并且在不必学习土耳其语的情况下仍然知道<asp:Label>应该是什么。

以此为例:

<asp:Localize runat="server" Text="<%$Resources : Label, Price%>">     
   Price
</asp:Localize>

现在,如果我的默认Label.resx已翻译为土耳其语,则Labels.resx映射将为:

Key="Price"
Value="fiyat"

在设计时,IDE会显示Price(因为<asp:Localize>元素的内部文本为Price),但网页浏览器中页面的实际实时视图会显示解析为fiyat

因此:

<div>
   <asp:Localize runat="server" 
                 Text="<%$Resources : Label, Price%>">
                      Price
   </asp:Localize>
</div>

变为:

<div>fiyat</div>

但在IDE Designer 中,这将显示为“Price”。

与标签的区别在于,<asp:Label>将在IDE Designer和运行时解析为fiyat

答案 1 :(得分:13)

这最好描述:

  

Localize Control允许您本地化.aspx页面上的任何元素。 它提供了其基类Literal控件所不具备的设计时功能;特别是,Localize控件提供静态内容的设计时编辑,因此您可以在页面设计模式下查看默认值

发现于:http://wiki.asp.net/page.aspx/357/localize/

MSDN(底部有一个很好的描述)