Recherche et utilisation de ressources pour une culture spécifique

Le Common Language Runtime assure une prise en charge de la récupération des ressources spécifiques à une culture qui sont empaquetées et déployées dans des assemblys satellites. Les assemblys satellites ne contiennent que des fichiers de ressources ou des fichiers .resources libres, tels que les fichiers .gif. Ils ne contiennent pas de code exécutable.

Dans le modèle de déploiement de l'assembly satellite, vous créez une application avec un assembly par défaut (l'assembly principal) et plusieurs assemblys satellites. Vous devez empaqueter les ressources pour l'assembly par défaut ou neutre avec l'assembly principal et créer un assembly satellite séparé pour chaque langue que votre application prend en charge. Dans la mesure où les assemblys satellites ne font pas partie de l'assembly principal, vous pouvez facilement remplacer ou mettre à jour les ressources correspondant à une culture spécifique sans remplacer l'assembly principal de l'application.

La classe ResourceManager fournit un accès aux ressources spécifiques à une culture au moment de l'exécution et contrôle la façon dont l'application récupère les ressources à l'aide du processus de secours pour les ressources. Pour plus d'informations, consultez la sous-rubrique « Processus de secours pour les ressources » de la rubrique Empaquetage et déploiement de ressources. ResourceManager détermine les ressources à récupérer en fonction de la propriété CultureInfo.CurrentUICulture du thread actuel. Par exemple, si une application est compilée avec les ressources de langue anglaise par défaut dans l'assembly principal et deux assemblys satellites contenant des ressources pour les ressources de langue française et allemande, et que la propriété CurrentUICulture a la valeur " de ", ResourceManager récupère les ressources allemandes.

La propriété CurrentUICulture peut se définir de plusieurs manières. La façon de définir cette propriété a une influence sur les modalités selon lesquelles ResourceManager récupère des ressources en fonction de la culture :

  • Dans le code de l'application, vous pouvez affecter à la propriété CurrentUICulture une valeur représentant une culture spécifique, par exemple " fr-CA " pour le français au Canada. La définition explicite de CurrentUICulture dans le code permet de garantir que les ressources de cette culture seront toujours récupérées, quelle que soit la langue du navigateur de l'utilisateur ou sa langue système. Considérons par exemple une application qui est compilée avec des ressources de langue anglaise par défaut et deux assemblys satellites contenant des ressources pour les ressources de langue française et allemande. Si la propriété CurrentUICulture reçoit la valeur "de" dans le code de l'application, ResourceManager récupère toujours les ressources allemandes, même si la langue système de l'utilisateur est le français. Vérifiez qu'il s'agit du comportement souhaité avant de définir cette propriété explicitement dans le code.

    Dans les applications ASP.NET, il est nécessaire de définir CurrentUICulture explicitement parce qu'il est improbable que le paramètre du serveur corresponde aux demandes des clients.

  • La propriété CurrentUICulture est définie implicitement si une application spécifie une culture CurrentUICulture. Si la culture CurrentUICulture n'est pas définie explicitement dans le code d'une application, elle est définie par la fonction GetUserDefaultUILanguage sur les produits MUI (Multilingual User Interface) des systèmes d'exploitation Windows 2000 et Windows XP, où l'utilisateur final peut définir la langue par défaut. Si elle n'est pas définie par l'utilisateur, la langue de l'interface utilisateur est déterminée par la langue installée dans le système, qui est la langue des ressources du système d'exploitation.

    Dans le cas d'une application Web, la propriété CurrentUICulture peut être définie explicitement dans le code de l'application en fonction de la langue acceptée par le navigateur de l'utilisateur.

Pour obtenir des exemples de définition de la propriété CurrentUICulture, consultez Utilisation de la propriété CurrentUICulture.

Pour plus d'informations sur la récupération de ressources pour une culture spécifique, consultez Récupération de ressources d'assemblys satellites et Ressources dans les applications ASP.NET.

Voir aussi

Référence

CultureInfo Class
CultureInfo.CurrentUICulture Property

Concepts

Ressources dans les applications

Autres ressources

Codage et localisation