Frage

Ich habe eine Web-Anwendung in asp.net gebaut, die mehrere Sprachen unterstützen Ressourcendateien verwendet. Das Problem, das ich habe ist, dass ich nur eine neue Sprachdatei in Visual Studio hinzufügen kann, und ich habe die gesamte Anwendung neu zu erstellen eine neue Sprache aufgenommen zu haben. Nach der Suche im Netz habe ich herausgefunden, dass die Zusammenstellung der Ressource-Dateien kann in dem .net-Compiler durchgeführt werden. Ich habe die folgenden Befehle verwendet:

Resgen.exe / Kompilierung langfile.en.resx

Al.exe /out:en\App_GlobalResources.resources.dll / Kultur: en / embedresource: langfile .en.resources

wird die Datei in den Ordner der Website kopiert, aber es funktioniert nicht. Ich meine, wenn ich die neue Sprache von der Webseite auswählen, werden die Zeichenfolge aus der Standard-Ressourcendatei geladen. Wenn ich die Ressource-Datei in VS zu erstellen, funktioniert es in Ordnung. Ich überprüfte die Größen der beiden DLL-Dateien, die man erzeugt durch VS und dem von mir zusammengestellt, und sie haben die gleiche Größe, aber die kompilierte eine funktioniert nicht. Ich kann nur denken, dass vielleicht würde ich einige andere Parameter in den Befehlen verwenden, um oben, aber ich weiß nicht wirklich.

Jede Hilfe ist wirklich zu schätzen.

War es hilfreich?

Lösung

können Sie erreichen, was Sie wollen, indem Sie Ihren eigenen Ausdruck Builder anstelle der Verwendung der integrierten Ressourcen-Version und ziehen Sie die Informationen aus einer Datenbank oder XML-Dateien zu schreiben. Grundsätzlich können Sie Ihre eigene Klasse schreiben von System.Web.Compilation.ExpressionBuilder erben und dann registrieren Sie es in Web.config wie folgt aus:

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

und dann können Sie es wie normale Ressourcen verweisen:

<%$ CustomResources:Section, Key %>

Sie können einige Artikel auf dieser hier und hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top