Quand dois-je utiliser une commande de localisation au lieu d'une commande littérale?

j'ai récemment pris conscience du Système.Web.INTERFACE.Contrôles webcontrols.Localiser contrôle dans un laboratoire pour le ASP.NET 4.0 cours de certification des SCTM. Le but de ce contrôle est clair pour moi.

Dans les exemples, le Literal le contrôle et le Localize contrôle semblent être plus ou moins interchangeables. Après inspection, il semble que le Localize le contrôle hérite de Literal, mais ne fournit aucune fonctionnalité supplémentaire. Il utilise une classe de concepteur différente, qui semble moi être moins capable que la classe de designer pour les littérales.

alors, colorie-moi confus. Les littéraux localisable déjà. À quoi sert la commande Localize? Devrait Je l'utilise, et dans quelles circonstances?

25
demandé sur kbrimington 2011-02-26 01:12:52
la source

2 ответов

c'est Ce qui décrit le mieux:

le contrôle Localize vous permet de localiser n'importe quel élément sur un .aspx page. il fournit une fonctionnalité de temps de conception non offert par sa classe de base, le contrôle littéral; en particulier, le contrôle de localisation fournit l'édition de temps de conception de contenu statique de sorte que vous pouvez voir une valeur par défaut tout en travaillant dans le mode de conception de page.

Trouvé à: http://wiki.asp.net/page.aspx/357/localize/

MSDN (la section du bas contient une bonne description)

13
répondu Kelsey 2011-02-26 01:15:49
la source

j'apprécie que cela ait déjà été marqué comme réponse, mais voici une autre façon de le regarder.

<asp:Localize> est utilisé pour spécifier un élément défini par une ressource, ce qui force L'IDE à afficher du texte spécifié, et lui permet encore de résoudre à l'exécution, à la langue du site web.

Cela peut être utile pour le développement d'un site où le contenu du site est en fait dans une langue différente. Donc vous seriez capable d'être un programmeur anglophone, créer un site Web en turc, et savoir encore ce que un <asp:Label> est supposé l'apprendre sans avoir à apprendre le turc.

par exemple:

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

Maintenant, si mon défaut Label.resx a été traduit en turc, le Labels.resx cartographie serait:

Key="Price"
Value="fiyat"

au moment de la conception, l'IDE afficherait Price (comme le texte intérieur du <asp:Localize> élément Price) mais la vue réelle en direct de la page dans un navigateur web, résoudrait à fiyat.

par conséquent:

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

devient rendu comme:

<div>fiyat</div>

mais dans le Designer IDE, ceci serait affiché comme"prix".

La différence avec les étiquettes, c'est que <asp:Label> résoudra fiyat à la fois dans le designer IDE et à l'exécution.

32
répondu Dominic Zukiewicz 2013-03-10 17:30:04
la source

Autres questions sur