25 votes

Quand dois-je utiliser un contrôle Localize au lieu d'un Literal ?

J'ai récemment pris connaissance de la System.Web.UI.WebControls.Localize (en anglais) dans un laboratoire pour le cours de certification ASP.NET 4.0 MCTS. L'objectif de ce contrôle n'est pas clair pour moi.

Dans les exemples, le Literal et le Localize semblent être plus ou moins interchangeables. Après inspection, il apparaît que le Localize hérite de Literal mais ne fournit aucune fonctionnalité supplémentaire. Elle utilise une classe de concepteur différente, qui me semble moins performante que la classe de concepteur pour les littéraux.

Donc, je suis confus. Littéraux son localisable déjà . À quoi sert la commande Localize ? Devrait Je l'utilise, et dans quelles circonstances ?

35voto

Dominic Zukiewicz Points 3207

J'apprécie que cette question ait déjà été marquée comme ayant reçu une réponse, mais voici une autre façon de voir les choses.

<asp:Localize> est utilisé pour spécifier un élément défini par des ressources, qui force l'IDE à afficher un texte spécifique, tout en lui permettant de résoudre, au moment de l'exécution, la langue du site Web.

Cela peut être utile pour le développement d'un site dont le contenu est en réalité dans une autre langue. Ainsi, vous pourriez être un programmeur anglophone, créant un site web en turc, et toujours savoir ce qu'est un <asp:Label> est censé le faire sans avoir à apprendre le turc.

Donc, à titre d'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 la cartographie serait :

Key="Price"
Value="fiyat"

Au moment de la conception, l'IDE affiche Price (comme le texte intérieur de la <asp:Localize> L'élément est Price ), mais l'affichage réel de la page dans un navigateur web donnerait la résolution suivante fiyat .

Par conséquent :

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

Est rendu comme :

<div>fiyat</div>

Mais dans l'IDE Designer il sera affiché comme "Prix".

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

13voto

Kelsey Points 26456

C'est ce qui le décrit le mieux :

Le contrôle Localize vous permet de localiser n'importe quel élément d'une page .aspx. Il offre une fonction de conception qui n'est pas offerte par sa classe de base, le contrôle Literal ; en particulier, le contrôle Localize permet de modifier le contenu statique au moment de la conception, de sorte que vous pouvez voir une valeur par défaut tout en travaillant en mode de conception de page. .

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

MSDN (la section inférieure contient une bonne description)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X