Share via


Procédure pas à pas : utilisation de ressources pour la localisation avec ASP.NET

Mise à jour : novembre 2007

Une manière efficace de créer des pages Web localisées est d'utiliser des ressources destinées au texte de votre page et des contrôles fondés sur la langue et la culture de l'utilisateur. En utilisant des propriétés placées dans des objets de ressource, ASP.NET peut sélectionner la propriété appropriée au moment de l'exécution en fonction de la langue et de la culture de l'utilisateur. Le processus est simple :

  • Un fichier de ressources (.resx) stocke des valeurs.

  • Dans votre page, indiquez que les contrôles doivent utiliser des ressources pour leurs valeurs des propriétés.

  • Au moment de l'exécution, les valeurs des propriétés des contrôles sont dérivées du fichier de ressources.

    Remarque :

    En pratique, vous pouvez stocker des valeurs dans objets de ressource personnalisés, tels qu'une base de données. Toutefois, vous utiliserez un fichier .resx pour stocker des valeurs lors de cette procédure pas à pas.

Visual Web Developer vous permet de générer des ressources pour les contrôles, des propriétés de contrôle et du HTML pour vos contrôles sans écrire de code.

Cette procédure pas à pas illustre les tâches suivantes :

  • activation de la localisation de pages ASP.NET ;

  • génération d'un fichier de ressources et association implicite de ses valeurs aux contrôles de votre application ;

  • création de fichiers de ressources de localisation et référence explicite à ceux-ci dans vos pages en utilisant des expressions déclaratives.

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin de :

  • Visual Web Developer (Visual Studio)

  • .NET Framework

Création d'un site Web

Si vous avez déjà créé un site Web dans Visual Web Developer (consultez Procédure pas à pas : création d'une page Web de base dans Visual Web Developer), vous pouvez utiliser ce site Web et passer à la section suivante, « Localisation implicite avec ASP.NET ». Sinon, créez un site et une page Web en suivant les étapes de la procédure ci-dessous.

Pour créer un site Web de système de fichiers

  1. Ouvrez Visual Web Developer.

  2. Dans le menu Fichier, cliquez sur Nouveausite Web.

    La boîte de dialogue Nouveau site Web s'affiche.

  3. Sous Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.

  4. Dans la zone Emplacement, entrez le nom du dossier dans lequel vous souhaitez conserver les pages de votre site Web.

    Par exemple, tapez le nom du dossier C:\SitesWeb.

  5. Dans la liste Langage, cliquez sur le langage de programmation que vous préférez utiliser.

  6. Cliquez sur OK.

    Visual Web Developer crée le dossier et une page nommée Default.aspx.

Localisation implicite avec ASP.NET

Dans cette section, vous utiliserez la localisation implicite. Lors de la localisation implicite, vous spécifiez que les propriétés de contrôle doivent être automatiquement lues à partir d'un fichier de ressources, mais vous ne devez pas spécifier explicitement les propriétés qui sont localisées. Ensuite, vous créez un fichier de ressources avec les valeurs localisées de propriétés spécifiques. Au moment de l'exécution, ASP.NET examine les contrôles sur la page. Si le contrôle est marqué pour utiliser la localisation implicite, ASP.NET recherche la page dans le fichier de ressources. S'il trouve des paramètres de propriété pour le contrôle marqué, ASP.NET substitue les valeurs du fichier de ressources par ceux du contrôle.

Dans cet exemple de localisation implicite, vous utilisez une combinaison du concepteur et de l'Éditeur de ressources pour générer un fichier de ressources par défaut que vous utiliserez comme point de départ pour la localisation dans deux langues. Visual Web Developer générera un fichier de ressources basé uniquement sur les contrôles de votre page. Pour cette raison, il est conseillé de générer le fichier de ressources après avoir terminé la disposition des contrôles de votre page, y compris les contrôles simples tels que les boutons, les étiquettes et les zones de texte.

Pour placer des contrôles sur une page

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Default.aspx, cliquez sur Renommer, puis tapez sample.aspx.

    Cela permettra d'éviter une confusion lors des étapes suivantes de la procédure pas à pas concernant les fichiers de ressources par défaut, car le nom des fichiers de ressources implicite utilise le nom des pages.

  2. Ouvrez Sample.aspx, puis basculez en mode Design.

  3. Dans la boîte à outils, dans la zone Standard, faites glisser un contrôle Button, Label et TextBox sur la page.

  4. Pour chaque contrôle, affectez respectivement English Button, English Label et English TextBox à Text.

Après avoir créé la page et ajouté les contrôles, vous pouvez utiliser une commande Visual Web Developer pour générer un fichier de ressources locales pour cette page. Le fichier de ressources locales contiendra les chaînes de ressources des contrôles de la page. Visual Web Developer génère une chaîne de ressources pour chaque propriété qui est désignée comme localisable en interne dans le contrôle. Chaque contrôle peut avoir différentes propriétés désignées comme localisables, bien que la plupart des propriétés texte soient marquées de cette façon.

Pour générer automatiquement un fichier de ressources

  1. Cliquez dans l'aire du concepteur ou sur un contrôle.

  2. Dans le menu Outils, cliquez sur Générer la ressource locale.

    Visual Web Developer crée un dossier nommé App_LocalResources, et dans le dossier App_LocalResources, un nouveau fichier nommé sample.aspx.resx. Si vous avez nommé votre page autrement que Sample.aspx, le fichier .resx le reflétera quel que soit nom que vous avez choisi. Lors de l'utilisation de la localisation implicite, le nom des fichiers de ressources dépend du nom des pages.

  3. Basculez en mode Source pour voir les modifications apportées à vos déclarations de contrôles.

    Visual Web Developer a ajouté un attribut à vos contrôles afin de récupérer leurs valeurs à partir du fichier de ressources que vous avez récemment créé. Par exemple, le balisage du contrôle Button a un nouvel attribut meta:resourcekey.

    <asp:Button ID="Button1" Runat="server" meta:resourcekey="ButtonResource1" Text="English Button" />
    

Lorsqu'un navigateur envoie une demande au serveur Web, la demande peut inclure des informations sur la langue et la culture actuelles. Par exemple, un navigateur peut envoyer la chaîne "en-us" pour indiquer qu'elle a été définie pour utiliser l'anglais américain ; un autre navigateur peut envoyer la chaîne "en-gb" pour indiquer qu'elle a été définie pour utiliser l'anglais britannique.

Remarque :

Les paramètres de langue et de culture dans une demande de navigateur ne permettent pas de détecter de façon complètement fiable la langue par défaut de l'utilisateur. Les paramètres indiquent seulement que le navigateur a été configuré pour envoyer ou a hérité du système d'exploitation sous-jacent. Pour cette procédure pas à pas, fiez-vous aux paramètres de langue et de culture, toutefois, dans une application de production, vous devez également inclure une méthode permettant aux utilisateurs de sélectionner manuellement une langue et une culture.

Le fichier de ressources est utilisé comme fichier de ressources par défaut pour toutes les demandes. (Il s'agit du fichier de ressources destiné à la culture de secours.) Si aucune culture n'est spécifiée par le navigateur, ou si la demande du navigateur inclut une langue ou une culture que vous ne prenez pas en charge, des valeurs de ressources sont extraites de ce fichier par défaut.

Après avoir créé le fichier de ressources, vous pouvez placer le texte localisé dans celui-ci en utilisant l'Éditeur de ressources.

Pour modifier le fichier de ressources en utilisant l'Éditeur de ressources

  1. Dans l'Explorateur de solutions, ouvrez sample.aspx.resx.

    Dans l'Éditeur de ressources, sous Valeur, se trouvent les propriétés Text de chaque contrôle que vous avez placé sur votre page. La modification de la valeur, à cette étape, modifiera la valeur de la culture par défaut.

  2. Affectez Texte anglais modifié à ButtonResource1.Text.

  3. Enregistrez le fichier.

Vous pouvez à présent tester la page.

Pour tester la page

  • Appuyez sur CTRL+F5 pour exécuter la page.

    Le texte que vous avez fourni dans l'Éditeur de ressources est affiché en tant qu'étiquette de Button1. Lors de l'utilisation de la localisation implicite, les propriétés de syntaxe dans les fichiers de ressources substitueront les propriétés spécifiées dans la page elle-même.

Ajout d'autres cultures

Chaque combinaison de langue et de culture requiert un fichier de ressources unique. Pour ajouter d'autres cultures, vous pouvez utiliser votre fichier par défaut comme point de départ. Vous pouvez créer des fichiers de ressources pour différents paramètres régionaux et cultures en créant des fichiers de ressources dans lesquels les codes de langue ISO font partie du nom de fichier (par exemple, en-us, fr-ca et en-gb). Ces codes ISO sont placés entre le nom de la page et l'extension du nom de fichier .resx, comme dans Sample.aspx.en-us.resx. Pour spécifier une langue culturellement neutre, vous éliminerez le code du pays, comme dans Sample.aspx.fr.resx pour la langue française.

Remarque :

Lorsque vous utilisez la syntaxe de localisation implicite, vous devez créer une série séparée de fichiers de ressources pour chaque page.

Pour créer un fichier en langue française culturellement neutre

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur sample.aspx.resx, puis cliquez sur Copier.

  2. Cliquez avec le bouton droit sur le dossier App_LocalResources, puis cliquez sur Coller.

    Visual Web Developer crée un fichier nommé Copie de Sample.aspx.resx.

  3. Cliquez avec le bouton droit sur le fichier Copie de sample.aspx.resx, cliquez sur Renommer, puis tapez sample.aspx.fr.resx.

    sample.aspx.fr.resx indique un fichier de texte en langue française culturellement neutre.

  4. Ouvrez sample.aspx.fr.resx.

  5. Pour les contrôles Button, Label et TextBox, affectez respectivement Bouton français, Étiquette français et Zone de texte français à Text.

  6. Enregistrez le fichier.

Pour tester avec un autre paramètre de langue

Avant de pouvoir voir si ce nouveau fichier de ressources est utilisé par ASP.NET, vous devez modifier les paramètres de votre navigateur afin de demander la culture souhaitée.

Pour modifier les paramètres de langue de votre navigateur

  1. Dans Microsoft Internet Explorer, dans le menu Outils, cliquez sur Options Internet.

  2. Cliquez sur Langues.

  3. Dans la boîte de dialogue Langue par défaut, cliquez sur Ajouter.

  4. Dans la boîte de dialogue Ajouter une langue, sous Langues, cliquez sur Français (France) [fr], puis cliquez sur OK.

  5. Cliquez sur Ajouter, puis ajoutez Espagnol (Mexique) [es-mx] à la liste des langues.

  6. Cliquez sur Ajouter, puis ajoutez Arabe (Égypte) [ar-eg] à la liste des langues.

    Vous utiliserez l'espagnol et l'arabe pour réaliser le test lors d'une étape ultérieure de cette procédure.

  7. Dans la boîte de dialogue Langues, sous Langue, cliquez sur Français (France) [fr], sur Monter, puis sur OK.

Internet Explorer est à présent configuré pour passer fr en tant que paramètre de langue pour toute demande. En ayant affecté auto à la culture dans la page Sample.aspx, ASP.NET essaiera de localiser un fichier de ressources et ses valeurs correspondantes pour assembler la page en fonction vos préférences de langue et de culture.

Pour tester la page

  • Dans Visual Web Developer, appuyez sur CTRL+F5 pour exécuter la page.

    La page est actualisée avec les valeurs provenant du fichier localisé en langue française au lieu de la version anglaise.

    Remarque :

    Vous pouvez réinitialiser vos paramètres de langue dans Internet Explorer en retournant à la boîte de dialogue Langues et remontant la langue choisie dans la liste.

Localisation explicite avec ASP.NET

Dans la première partie de cette procédure pas à pas, vous avez utilisé la localisation implicite ASP.NET pour que des contrôles affichent du texte localisé. Vous avez généré un fichier de ressources avec des valeurs de propriétés à l'intérieur, et lors du processus, vous avez ajouté un attribut à chaque contrôle qui l'a instruit pour remplir ses éventuelles valeurs de propriétés à partir du fichier de ressources. La localisation implicite fonctionne automatiquement dans le sens où vous n'avez pas besoin de spécifier propriété par propriété comment lire les informations d'un fichier de ressources.

Toutefois, vous souhaitez parfois avoir plus de contrôle direct sur la définition des propriétés. Pour cela, au lieu d'utiliser la localisation implicite, vous pouvez utiliser la localisation explicite. Avec la localisation explicite, vous définissez la valeur d'une propriété en utilisant une expression pointant vers un fichier de ressources. Lors de l'exécution de la page, l'expression est évaluée, la valeur est lue à partir du fichier de ressources spécifié, puis la valeur est utilisée pour définir la propriété.

La localisation explicite est utile lorsque vous souhaitez localiser des corps de texte ou des messages personnalisés de taille importante, en plus des contrôles et des étiquettes. Par exemple, vous pouvez développer une série de messages d'accueil et de remerciement localisés pour un site de commerce électronique et utiliser des expressions déclaratives explicites pour placer ce texte sur vos pages. La localisation explicite vous permet également de conserver un seul jeu de fichiers de ressources localisés plutôt que de conserver un jeu de fichiers séparé pour chaque page.

De cette section, vous créerez des fichiers de ressources manuellement et les référencerez en utilisant la syntaxe d'expression déclarative ASP.NET. Vous créerez un fichier de ressources pour un message de remerciement simple. Contrairement à l'utilisation du concepteur, un fichier de ressources séparé n'est pas requis pour chaque page ASP.NET.

Le nom de base de votre fichier de ressources sera LocalizedText. Pour chaque langue que vous souhaitez localiser, vous créerez un autre fichier en intégrant le code de langue approprié (et éventuellement le code de culture) dans le nom de fichier. Vous créez, par exemple, un fichier nommé LocalizedText.resx pour l'anglais américain. Pour la langue française au Canada, vous créez un fichier nommé LocalizedText.fr-ca.resx. Les deux fichiers sont placés dans le répertoire Ressources de votre application Web. Contrairement à l'exemple implicite précédent, vous n'avez pas besoin de conserver un fichier de ressources pour chaque page .aspx, vous pouvez, à la place, conserver une seule série de fichiers pour chaque langue ou culture que vous prenez en charge.

Pour créer un fichier de ressources

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur la racine de votre site Web, cliquez sur Ajouter le dossier ASP.NET, puis sur App_GlobalResources.

  2. Cliquez avec le bouton droit sur le dossier App_GlobalResources, puis cliquez sur Ajouter un nouvel élément.

  3. Sous Modèles Visual Studio installés, cliquez sur Fichier de ressources.

  4. Dans la zone Nom, tapez LocalizedText.resx, puis cliquez sur Ajouter.

    Le fichier LocalizedText.resx jouera le rôle de ressource pour la culture de secours.

  5. Créez un deuxième fichier .resx et nommez-le LocalizedText.fr.resx.

    La chaîne "fr" identifie le fichier en tant que ressource à utiliser si le langage du navigateur est le français (indépendamment de la culture).

  6. Créez un troisième fichier .resx et nommez-le LocalizedText.es-mx.resx.

    La chaîne "es-mx" identifie le fichier en tant que ressource à utiliser si le langage du navigateur est l'espagnol (Mexique).

  7. Ouvrez le fichier LocalizedText.resx.

  8. Dans la première ligne, sous la colonne Nom, tapez Msg1.

  9. Dans la première ligne, sous la colonne Valeur, tapez Hello

  10. Enregistrez le fichier et fermez-le.

  11. Ouvrez le LocalizedText.fr.resx, créez une chaîne de ressources nommée Msg1, assignez-lui la valeur Bon jour. Lorsque vous avez terminé, enregistrez et fermez le fichier.

  12. Ouvrez le fichier LocalizedText.es-mx.resx, créez une chaîne de ressources nommée Msg1, assignez-lui la valeur Buenos días. Lorsque vous avez terminé, enregistrez et fermez le fichier.

    Remarque :

    Pour insérer la lettre avec un accent aigu (í), tapez ALT+0237 sur le pavé numérique avec le verrouillage numérique activé.

    Vous avez créé trois valeurs pour la ressource nommée Msg1. ASP.NET lira la valeur du fichier de ressources approprié en fonction de la langue affectée au navigateur.

Une fois que votre fichier de ressources est créé, vous pouvez retourner à la page et ajouter des contrôles qui feront référence à la ressource.

Pour ajouter un contrôle Label à la page

  1. Basculez vers Sample.aspx, puis basculez en mode Design.

  2. Faites glisser un autre contrôle Label sur la page.

  3. Cliquez avec le bouton droit sur le contrôle Label, cliquez sur Propriétés, puis sur le bouton de sélection (...) dans la zone Expressions.

    La boîte de dialogue Expressions s'affiche.

  4. Dans la liste Propriétés pouvant être liées, cliquez sur Text.

  5. Dans la liste Type d'expression, sélectionnez Ressources.

  6. Sous Propriétés d'expression, affectez LocalizedText à ClassKey et Msg1 à ResourceKey.

  7. Cliquez sur OK.

  8. Basculez en mode Source.

    L'attribut de texte de votre étiquette possède à présent une expression explicite indiquant le fichier de base à partir duquel récupérer la ressource et la clé à sélectionner.

    <asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>">
    
    Remarque :

    L'attribut LocalizedText ne possède aucun indicateur de langue, indicateur de culture ou extension .resx, car il ne s'agit pas du vrai nom de fichier. À la place, LocalizedText représente la classe de ressource de base. En fonction de la culture envoyée par le navigateur, ASP.NET sélectionnera la ressource à partir du fichier avec la langue ou le code de culture approprié dans son nom de fichier, tel que LocalizedText.fr.resx, LocalizedText.es-mx.resx, ou si aucune langue correspondante n'est trouvée, LocalizedText.resx.

Après avoir terminé le fichier de ressources et ajouté l'expression déclarative, vous pouvez tester la page. Après le dernier test, votre navigateur a été configuré pour signaler le français comme sa préférence de langue. Pendant le test, vous modifierez le langage du navigateur plusieurs fois.

Pour tester la page

  1. Appuyez sur CTRL+F5 pour exécuter la page.

    La version en langue française du texte que vous avez fournie dans l'Éditeur de ressources est affichée en tant que texte du contrôle Label.

  2. Dans Microsoft Internet Explorer, dans le menu Outils, cliquez sur Options Internet.

  3. Cliquez sur Langues.

  4. Dans la boîte de dialogue Langues, placez Espagnol (Mexique) [es-mx] en haut de la liste des langues. Lorsque vous avez terminé, cliquez sur OK, puis fermez la boîte de dialogue Options Internet.

  5. Appuyez sur F5 pour actualiser le navigateur.

    La version espagnole du texte s'affiche.

  6. Remplacez la langue par l'arabe puis appuyez sur F5 pour actualiser une nouvelle fois la page.

    Cette fois-ci, le texte s'affiche dans la langue que vous avez utilisée dans le fichier de ressources de secours. Parce que vous n'avez pas créé de fichier LocalizedText.ar-eg.resx, ASP.NET n'était pas capable de localiser le texte qui correspondait à la langue et à la culture signalées par le navigateur ; par conséquent, il a utilisé le fichier de ressources de secours.

  7. Lorsque vous avez terminé de tester la page, affectez une nouvelle fois votre langue par défaut à la langue.

Étapes suivantes

La localisation peut être une entreprise complexe. Cette procédure pas à pas a illustré certaines fonctionnalités dans Visual Web Developer qui permettent de faciliter le travail. Vous souhaitez peut-être en savoir plus sur la localisation et ASP.NET. Par exemple, vous souhaitez peut-être :

  • En savoir plus sur l'utilisation des ressources dans vos applications. Pour plus d'informations, consultez Ressources dans les applications.

  • Utiliser des classes qui définissent des informations liées à la culture, notamment la langue, le pays ou la région, les calendriers utilisés, les formats des dates, des monnaies et des nombres, ainsi que l'ordre de tri à respecter pour les chaînes. Pour plus d'informations, consultez System.Globalization.

  • En savoir plus sur les méthodes conseillées à utiliser lors du codage pour un public global. Pour plus d'informations, consultez Meilleures pratiques pour développer des applications mondialisables.

Voir aussi

Concepts

Utilisation de la classe CultureInfo

Autres ressources

Codage et localisation

Espaces de noms de globalisation et de localisation dans Visual Studio