.NET & C# Lokalisierung
Organisieren Sie RESX-Ressourcen nach Funktionsbereich, anstatt alle Zeichenketten in eine Datei zu packen. Eine Resources/Common.resx für gemeinsame Beschriftungen, Resources/Auth.resx für Authentifizierungszeichenketten und Resources/Checkout.resx für Commerce-Flows ist einfacher zu warten als eine monolithische Ressourcendatei. In ASP.NET Core wird dies direkt auf typisierte IStringLocalizer-Injektion abgebildet – IStringLocalizer vom Typ Common wird aus Common.resx und seinen sprachspezifischen Varianten aufgelöst. Die bereichsbezogene Organisation ermöglicht auch Übersetzungszuweisungen nach Funktion, ohne nicht verwandte Zeichenketten gegenüber jedem Übersetzer offenzulegen.
Benennen Sie Ressourcenschlüssel in PascalCase gemäß .NET-Konventionen und halten Sie sie semantisch: Button_Submit ist klarer als Label47. Vermeiden Sie Leerzeichen, Bindestriche und Nicht-Bezeichner-Zeichen in Schlüsseln – die generierte Designer.cs-Klasse stellt Schlüssel als Eigenschaften bereit, und Nicht-Bezeichner-Zeichen erfordern Workarounds. Für Zeichenketten mit positionellen Formatplatzhaltern (nullindizierte geschweiften Klammerargumente) schreiben Sie einen Ressourcenkommentar, der den erwarteten Typ und die Bedeutung jedes Arguments dokumentiert, damit Übersetzer verstehen, was jeder Platzhalter repräsentiert, ohne den aufrufenden Code zu sehen.
Registrieren Sie in ASP.NET Core Lokalisierungsdienste in Program.cs mit AddLocalization und konfigurieren Sie RequestLocalizationMiddleware mit Ihren unterstützten Kulturen und der Standardkultur. Verwenden Sie IStringLocalizer mit typisierten generischen Parametern für die Bindung an Satellite-Assemblys zur Kompilierungszeit und korrekte Fallback-Kettenauflösung. In Blazor WebAssembly werden Satellite-Assemblys beim Start asynchron geladen – konfigurieren Sie Lazy Loading, um nur die Kulturen herunterzuladen, die Ihre Nutzer tatsächlich benötigen, anstatt alle Satellite-Assemblys in der anfänglichen Nutzlast zu bündeln, was bei Anwendungen mit vielen Sprachen erheblich sein kann.
Verbinden Sie Ihr GitHub-, Bitbucket- oder Azure-Repos-Repository mit Language Monster. Language Monster erkennt RESX-Dateien automatisch, zieht geänderte Zeichenketten aus Ihrer Basisressourcendatei und überträgt fertige sprachspezifische RESX-Dateien zurück in Ihr Repository, bereit für Ihre MSBuild-Pipeline. .NET-Positionsformatbezeichner werden erkannt und während der Übersetzung geschützt. XML-Datentyp-Felder und Kommentarknoten bleiben in den Ausgabedateien erhalten.
Aktivieren Sie die Build-Zeit-Ressourcenvalidierung in Ihrer CI-Pipeline auf der Ebene „Warnungen als Fehler“, um fehlende oder nicht übereinstimmende Schlüssel vor der Bereitstellung aufzudecken. Die Qualitätskontrollen von Language Monster führen Rechtschreib-, Grammatik- und Platzhalterprüfungen bei jeder gespeicherten Übersetzung durch. Translation Memory überträgt Arbeit aus früheren Anwendungsversionen – das Hinzufügen einer neuen unterstützten Kultur verwendet den vorhandenen Memory-Bank, bevor eine maschinelle Übersetzungsanfrage gesendet wird, was die Kosten für große, ausgereifte Ressourcendateien erheblich reduziert.
