Подтвердить что ты не робот

Когда следует использовать элемент управления Localize вместо Literal?

Недавно я узнал об управлении System.Web.UI.WebControls.Localize в лаборатории для курса сертификации MCTS ASP.NET 4.0. Цель этого контроля для меня непонятна.

В примерах управление Literal и управление Localize кажутся более или менее взаимозаменяемыми. При проверке выясняется, что элемент управления Localize наследует от Literal, но не предоставляет никаких дополнительных функций. Он использует другой класс дизайнера, который кажется мне менее способным, чем класс конструктора для литералов.

Итак, распутайте меня. Литералы являются локализуемыми уже. Для чего используется элемент управления Localize? Должен ли я использовать его и при каких обстоятельствах?

4b9b3361

Ответ 1

Это описано лучше всего:

Локализованное управление позволяет локализовать любой элемент на странице .aspx. Он предоставляет функцию времени разработки, не предлагаемую ее базовым классом, Literal control; в частности, элемент управления Localize обеспечивает редактирование времени статического содержимого, поэтому вы можете увидеть значение по умолчанию при работе в режиме дизайна страницы.

Найдено по адресу: http://wiki.asp.net/page.aspx/357/localize/

MSDN (нижняя часть имеет хорошее описание)

Ответ 2

Я понимаю, что это уже было отмечено как ответ, но вот еще один способ взглянуть на него.

<asp:Localize> используется для указания элемента, определенного ресурсом, что вынуждает IDE отображать определенный текст и позволяет разрешать его во время выполнения на языке веб-сайта.

Это может быть полезно для разработки сайта, на котором контент сайта находится на другом языке. Таким образом, вы сможете быть англоязычным программистом, создавая веб-сайт на турецком языке и все еще знать, что такое <asp:Label>, чтобы он не изучал турецкий язык.

Итак, в качестве примера:

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

Теперь, если мой default 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 это будет отображаться как "Цена".

Разница с метками заключается в том, что <asp:Label> будет разрешен к fiyat в дизайнере IDE и во время выполнения.