Question

J'ai la configuration non standard suivante (VS2008, .NET 3.5 SP1):

Il existe un projet Web principal appelé MainSite et plusieurs "plugins". projets Web avec des noms différents.

Lors de la construction de ces plugins, j'ai une étape de construction personnalisée qui appelle aspnet_compiler.exe et aspnet_merge.exe . Cela se traduit par deux fichiers .DLL - nom_ plugin .dll et nom plugin _deploy.dll. Le premier contient les classes codebehind, le second contient du code généré à partir de fichiers .ascx.

Ces plugins .DLL sont ensuite copiés dans le dossier / MainSite / bin / Plugins / . Au moment de l'exécution (démarrage de l'application), l'application MainSite consulte ce dossier et y charge dynamiquement tous les fichiers .DLL.

Tous mes formulaires sont dans les plugins, dans des fichiers .ascx. L’application principale est juste un squelette qui charge ces contrôles utilisateur .ascx selon les besoins.

Et vient maintenant le besoin de localisation. Idéalement, j'aimerais avoir les éléments suivants:

  • Lors de la création des ressources dans Visual Studio, il doit exister un fichier de ressources distinct pour chaque formulaire (fichier .ascx) afin de faciliter la localisation des formulaires en parallèle par les utilisateurs.
  • La belle méthode meta: resourcekey dans les fichiers .ascx est très pratique pour localiser les contrôles;
  • Le mécanisme de secours automatique de la langue / culture des ressources dans .NET doit être utilisable;
  • Le résultat de la compilation doit être tel que les fichiers de tous les plugins puissent être copiés dans le dossier / MainSite / bin / Plugins / . S'il existe un fichier .DLL pour chaque langue / culture et qu'il doit être placé dans des sous-dossiers spécifiques, c'est très bien tant que les fichiers .DLL de différents plugins n'ont pas de noms en conflit.

Avez-vous des idées pour y parvenir?

Était-ce utile?

La solution

Il est apparemment possible d'implémenter des fournisseurs de ressources personnalisés dans .NET. Voici un article contenant des liens vers divers autres articles expliquant le processus complet. En effet, vous prenez la valeur de meta: resourcekey et vous la récupérez où vous voulez. L’article ci-dessus, par exemple, stocke toutes les informations de localisation dans une base de données.

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