Question

J'ai une application web construite en asp.net, qui utilise des fichiers de ressources pour prendre en charge plusieurs langues. Le problème est que je je ne peux ajouter un nouveau fichier de langue dans Visual Studio, et je dois reconstruire toute l'application d'une nouvelle langue inclus. Après avoir cherché sur le net que j'ai trouvé que la compilation des fichiers de ressources peut être fait dans le compilateur .net. Je l'ai utilisé les commandes suivantes:

resgen.exe / compilation langfile.en.resx

al.exe /out:en\App_GlobalResources.resources.dll / culture: en / embedresource: langfile .en.resources

Le fichier est copié dans le dossier du site Web, mais il ne fonctionne pas. Je veux dire, lorsque je sélectionne la nouvelle langue de la page Web, les chaînes sont chargées à partir du fichier de ressources par défaut. Si je crée le fichier de ressources dans VS, cela fonctionne bien. J'ai vérifié les dimensions des deux fichiers dll, celui généré par VS et celui compilé par moi-même, et ils ont la même taille, mais celui compilé ne fonctionne pas. Je ne peux que penser que peut-être que je devrais utiliser d'autres paramètres dans les commandes ci-dessus, mais je ne sais pas vraiment.

Toute aide est vraiment apprécié.

Était-ce utile?

La solution

Vous pouvez obtenir ce que vous voulez en écrivant votre propre générateur d'expression au lieu d'utiliser la version intégrée des ressources et tirer les informations à partir d'une base de données ou des fichiers XML. Fondamentalement, vous écrivez votre propre classe héritant de System.Web.Compilation.ExpressionBuilder puis l'enregistrer dans web.config comme ceci:

<compilation>
  <expressionBuilders>
    <add expressionPrefix="CustomResources" type="CustomResourcesExpressionBuilder"/>
  </expressionBuilders>
</compilation>

et alors vous pouvez faire référence comme les ressources normales:

<%$ CustomResources:Section, Key %>

Vous pouvez trouver des articles sur et ici .

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