Когда я должен использовать элемент управления Localize вместо Literal? - PullRequest
25 голосов
/ 26 февраля 2011

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

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

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

Ответы [ 2 ]

33 голосов
/ 29 июня 2011

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

<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 это будет отображаться как "Цена".

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

13 голосов
/ 26 февраля 2011

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

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

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

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

...