2010-09-17 5 views
2

Je dois concevoir un système de contenu configurable pour tout le texte de notre application Web qui reliera notre besoin de traduction avec la capacité pour les groupes d'utilisateurs, les sous-groupes d'utilisateurs et les utilisateurs individuels pour configurer ce qu'une étiquette, un message d'erreur ou une partie du texte du système indique.Système de contenu configurable dans ASP.NET

Étant donné que tout doit être configurable via l'interface, les fichiers de ressources ne semblent pas être la solution.

Je ne m'attends pas à trouver quelque chose comme ça hors de la boîte. Comment allez-vous concevoir quelque chose comme ça, ou que commenceriez-vous à configurer pour obtenir cette fonctionnalité?

Répondre

1

J'ai atteint le type de fonctionnalité que vous recherchez en créant un fournisseur de ressources personnalisées sauvegardé par base de données et en définissant la balise <globalization> dans Web.Config pour pointer vers votre fournisseur personnalisé. voir: http://msdn.microsoft.com/en-us/library/aa905797.aspx

Ensuite, dans les pages et vos code, vous pouvez vous référer à GetGlobalResourceObject ou GetLocalResourceObject pour obtenir des ressources localisées. Bien qu'il soit principalement conçu pour plusieurs langues, je l'ai utilisé en combinaison avec des fonctionnalités locales personnalisées pour fournir différentes étiquettes, messages d'erreur et du texte à différents groupes d'utilisateurs.

1

Créer une simple table le long des lignes de:

table Resources { 
    language varchar(100) 
    label varchar(100) /* you might consider a different key type, but this would be easiest on coding */ 
    value varchar(max) 
} 

Vous pouvez simplement mettre en cache toute la table sur le serveur Web pour effectuer le look ups localement et simplement expirer le cache lorsqu'une valeur est modifiée.

C'est une chose relativement facile.

+1

Assurez-vous d'utiliser l'encodage UTF8. Rien ne craint plus que des problèmes d'encodage havin – citronas

Questions connexes