Suchen und Verwenden von Ressourcen für eine bestimmte Kultur
Aktualisiert: November 2007
Die Common Language Runtime unterstützt den Abruf kulturspezifischer Ressourcen, die in Satellitenassemblys verpackt und bereitgestellt werden. Satellitenassemblys enthalten lediglich Ressourcendateien oder freie Ressourcen (z. B. GIF-Dateien). Sie enthalten keinen ausführbaren Code.
Im Satellitenassembly-Bereitstellungsmodell erstellen Sie eine Anwendung mit einer Standardassembly (der Hauptassembly) und verschiedenen Satellitenassemblys. Sie sollten die Ressourcen für die neutrale bzw. Standardassembly mit der Hauptassembly verpacken und für jede durch die Anwendung unterstützte Sprache eine separate Satellitenassembly erstellen. Da die Satellitenassemblys kein Teil der Hauptassembly sind, können Sie die Ressourcen problemlos entsprechend einer bestimmten Kultur ersetzen oder aktualisieren, ohne die Hauptassembly der Anwendung ersetzen zu müssen.
Die ResourceManager-Klasse stellt den Zugriff auf kulturspezifische Ressourcen zur Laufzeit bereit und steuert, wie die Anwendung mithilfe des Ressourcenfallback-Prozesses Ressourcen abruft. Weitere Informationen finden Sie im untergeordneten Thema "Ressourcenfallback-Prozess" des Themas Verpacken und Bereitstellen von Ressourcen.
Das ResourceManager-Objekt legt anhand der CurrentUICulture-Eigenschaft des aktuellen Threads fest, welche Ressourcen abgerufen werden. Wenn Sie beispielsweise eine Anwendung mit den Standardsprachressourcen Englisch in der Hauptassembly und zwei Satellitenassemblys mit Ressourcen für Französisch und Deutsch kompiliert und die CurrentUICulture-Eigenschaft auf "de" festgelegt haben, ruft das ResourceManager-Objekt die deutschen Ressourcen ab.
Die CurrentUICulture-Eigenschaft kann auf verschiedene Arten festgelegt werden. Beachten Sie, dass die Art der Festlegung dieser Eigenschaft bestimmt, wie der ResourceManager Ressourcen basierend auf der Kultur abruft:
Die CurrentUICulture-Eigenschaft kann auf eine bestimmte Kultur im Anwendungscode festgelegt werden. Wenn die Anwendung diese Eigenschaft explizit festlegt, wird dadurch gewährleistet, dass die Ressourcen für diese Kultur immer unabhängig von der Browser- oder Betriebssystemsprache des Benutzers abgerufen werden. Beispiel: Eine Anwendung wird mit Standardressourcen für Englisch und zwei Satellitenassemblys mit Ressourcen für Französisch und Deutsch kompiliert. Wenn die CurrentUICulture-Eigenschaft auf "de" festgelegt ist, ruft das ResourceManager-Objekt immer die Ressourcen für Deutsch ab, auch wenn der Benutzer die Betriebssystemsprache auf Französisch festlegt. Stellen Sie sicher, dass dies dem gewünschten Verhalten entspricht, bevor die Anwendung diese Eigenschaft explizit festlegt.
Hinweis In ASP.NET-Anwendungen ist es erforderlich, die CurrentUICulture explizit festzulegen, da nicht zu erwarten ist, dass die Einstellung auf dem Server mit den eingehenden Clientanfragen übereinstimmt.
Die CurrentUICulture-Eigenschaft wird implizit festgelegt, wenn eine Anwendung eine CurrentUICulture-Einstellung angibt. Wenn die Anwendung diese Eigenschaft nicht explizit festlegt, wird sie in Windows 2000- und Windows XP Multilingual User Interface (MUI)-Produkten, für die der Benutzer die Standardsprache festlegen kann, durch die GetUserDefaultUILanguage-Funktion festgelegt. Wenn die Sprache der Benutzeroberfläche nicht vom Benutzer festgelegt wird, wird sie durch die Sprache der Systeminstallation bestimmt, d. h. durch die Sprache der Ressourcen des Betriebssystems.
Hinweis Wenn es sich um eine webbasierte Anwendung handelt, kann CurrentUICulture explizit auf die Browsersprache der Benutzer festgelegt werden.
Beispiele zum Festlegen der CurrentUICulture-Eigenschaft finden Sie unter Verwenden der CurrentUICulture-Eigenschaft.
Weitere Informationen zum Abrufen von Ressourcen für eine bestimmte Kultur finden Sie unter Abrufen von Ressourcen in Satellitenassemblys und Ressourcen in ASP.NET-Anwendungen.