Localisation .NET & C#

Organisez les ressources RESX par domaine fonctionnel plutôt que de tout mettre dans un seul fichier. Un Resources/Common.resx pour les libellés partagés, Resources/Auth.resx pour les chaînes d'authentification et Resources/Checkout.resx pour les flux de commerce est plus facile à maintenir qu'un fichier de ressources monolithique. Dans ASP.NET Core, cela correspond directement à l'injection IStringLocalizer typée — IStringLocalizer de type Common résout à partir de Common.resx et de ses variantes spécifiques à la langue. L'organisation par domaine permet également des affectations de traduction par fonctionnalité sans exposer des chaînes non pertinentes à chaque traducteur.

Nommez les clés de ressources en PascalCase pour correspondre aux conventions .NET et gardez-les sémantiques : Button_Submit est plus clair que Label47. Évitez les espaces, les tirets et les caractères non identifiants dans les clés — la classe Designer.cs générée expose les clés comme des propriétés, et les caractères non identifiants nécessitent des solutions de contournement. Pour les chaînes contenant des espaces réservés de format positionnels (arguments entre accolades indexés à zéro), rédigez un commentaire de ressource documentant le type et la signification attendus de chaque argument afin que les traducteurs comprennent ce que représente chaque espace réservé sans voir le code appelant.

Dans ASP.NET Core, enregistrez les services de localisation dans Program.cs avec AddLocalization et configurez RequestLocalizationMiddleware avec vos cultures prises en charge et la culture par défaut. Utilisez IStringLocalizer avec des paramètres génériques typés pour la liaison d'assembly satellite au moment de la compilation et la résolution correcte de la chaîne de repli. Dans Blazor WebAssembly, les assemblies satellites sont chargées de manière asynchrone au démarrage — configurez le chargement différé pour télécharger uniquement les cultures dont vos utilisateurs ont réellement besoin plutôt que de regrouper toutes les assemblies satellites dans la charge utile initiale, ce qui peut être significatif pour les applications prenant en charge de nombreuses langues.

Connectez votre dépôt GitHub, Bitbucket ou Azure Repos à Language Monster. Language Monster détecte automatiquement les fichiers RESX, extrait les chaînes modifiées de votre fichier de ressources de base et repousse les fichiers RESX spécifiques à la langue complétés vers votre dépôt, prêts pour votre pipeline MSBuild. Les spécificateurs de format positionnels .NET sont détectés et protégés lors de la traduction. Les champs de type de données XML et les nœuds de commentaires sont préservés dans les fichiers de sortie.

Activez la validation des ressources au moment du build dans votre pipeline CI au niveau des erreurs comme avertissements pour détecter les clés manquantes ou non concordantes avant le déploiement. Les contrôles qualité de Language Monster effectuent des vérifications orthographiques, grammaticales et des espaces réservés sur chaque traduction enregistrée. La Translation Memory reporte le travail effectué dans les versions précédentes de l'application — l'ajout d'une nouvelle culture prise en charge réutilise la banque de mémoire existante avant toute demande de traduction automatique, réduisant considérablement les coûts pour les fichiers de ressources volumineux et matures.

En savoir plus . Ressource nette (.resx)

En savoir plus Formats de fichiers

En savoir plus intégration