kbr*_*ton 25 c# asp.net controls localization
我最近在ASP.NET 4.0 MCTS认证课程的实验室中了解了System.Web.UI.WebControls.Localize控件.我不清楚这种控制的目的.
在示例中,Literal
控件和Localize
控件似乎或多或少是可互换的.检查后,Localize
控件似乎继承自Literal
,但不提供其他功能.它使用了一个不同的设计器类,在我看来,它比文字的设计器类要差.
所以,让我感到困惑.文字已经可以本地化.什么是Localize控件用于?我应该使用它,在什么情况下?
Dom*_*icz 35
我很欣赏这已被标记为已回答,但这是另一种方式来看待它.
<asp:Localize>
用于指定资源定义项,该项强制IDE显示某些指定的文本,并且仍允许它在运行时解析为网站的语言.
这对于开发网站内容实际上使用不同语言的网站非常有用.所以你将能够成为一名讲英语的程序员,用土耳其语创建一个网站,并且<asp:Label>
在不必学习土耳其语的情况下仍然知道应该是什么.
举个例子:
<asp:Localize runat="server" Text="<%$Resources : Label, Price%>">
Price
</asp:Localize>
Run Code Online (Sandbox Code Playgroud)
现在,如果我的默认值Label.resx
被翻译成土耳其语,那么Labels.resx
映射将是:
Key="Price"
Value="fiyat"
Run Code Online (Sandbox Code Playgroud)
在设计时,IDE将显示Price
(作为<asp:Localize>
元素的内部文本Price
),但是Web浏览器中页面的实际实时视图将解析为fiyat
.
因此:
<div>
<asp:Localize runat="server"
Text="<%$Resources : Label, Price%>">
Price
</asp:Localize>
</div>
Run Code Online (Sandbox Code Playgroud)
变为:
<div>fiyat</div>
Run Code Online (Sandbox Code Playgroud)
但在IDE Designer中,这将显示为"Price".
与标签的区别在于IDE Designer和运行时<asp:Label>
都会解决fiyat
.
Kel*_*sey 13
这描述得最好:
Localize Control允许您本地化.aspx页面上的任何元素.它提供了其基类Literal控件所不具备的设计时功能; 特别是,Localize控件提供静态内容的设计时编辑,因此您可以在页面设计模式下查看默认值.
发现于:http://wiki.asp.net/page.aspx/357/localize/
MSDN(底部有一个很好的描述)