Question

J'ai des ressources de chaîne, par exemple une chaîne de bienvenue utilisateur. Par défaut, il devrait s'agir de "Bonjour", mais pour le client X, il devrait s'agir de "Greetings".

J'aimerais utiliser la mise en œuvre des ressources .NET , et que les chaînes soient placées dans des constantes, dans des fichiers ou à l'endroit souhaité, et que le modèle de hiérarchie réponde à mes besoins: les ressources du client X remplacent la chaîne de bienvenue de l'utilisateur.

Le seul problème - il semble que les ressources de .NET soient orientées vers i18n et choisissent dans la hiérarchie en fonction de la culture actuelle.

Pour le moment, je garderai des ressources fixes par client et mapperai moi-même la hiérarchie, mais existe-t-il une meilleure solution?

Était-ce utile?

La solution

Rien ne vous empêche vraiment d’avoir plusieurs ResourceManagers, mais comme vous le dites, il a été conçu pour l18n. Personnellement, j’ai eu beaucoup de problèmes avec les problèmes de resx, en particulier en ce qui concerne les assemblées satellites GAC et leur déploiement. L’autre problème que j’ai avec vous est la rigidité de ce système. Si vous avez besoin d’une nouvelle chaîne, vous devez recompiler une dll et tout bousiller avec XML, vos clients n’ont aucune flexibilité pour réparer, ce qui prend du temps.

La solution basée sur la hiérarchie utilisée par resx signifie qu'elle se repliera sur "en-US". à " en " et enfin, invariant, vous n’avez pas plus de solutions de rechange et vous ne pouvez pas définir deux types "en-US" différents. dans un fichier de ressources pour la même chaîne. Vous pouvez pirater cette solution pour utiliser " en-US " pour le client X et " en-AU " pour le client Y, puis expédier en tant que ressource unique, mais c’est désastreux.

Vous pouvez compiler un assemblage satellite différent pour chaque client et le faire fonctionner d’une manière ou d’une autre.

Personnellement, je préfère de loin une solution reposant sur une base de données pour la localisation, à l’aide de sqlite ou de mssql, tout en veillant à mettre en cache certaines opérations après la recherche initiale de chaînes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top