我最近在ASP.NET 4.0 MCTS认证课程的实验室中了解了System.Web.UI.WebControls.Localize控件。我不清楚这种控制的目的。
在示例中,Literal
控件和Localize
控件似乎或多或少可互换。检查后,Localize
控件似乎继承自Literal
,但不提供其他功能。它使用了一个不同的设计器类,在我看来,它的能力不如文字的设计者类。
所以,让我感到困惑。文字 是 可本地化的已经。什么是Localize控件用于? 应该我使用它,在什么情况下?
答案 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(底部有一个很好的描述)