Il y a quelques jours, je vous expliquais comment traduire une application Web ASP.net, c'est à dire comment traduire toutes les pages d'une application. Mais il reste un détail: si vous utilisez un fichier Web.sitemap (cartographie du site), comment le traduire?
En particulier, si vous avez lié ce fichier de cartographie à un contrôle d'affichage (TreeView, Menu ou SiteMapPath, par exemple) grâce au contrôle SiteMapDataSource, les attributs "Title" et "Description" de chaque noeud sont affichés - vous voulez donc les traduire.
Pour commencer, dans le fichier Web.sitemap, ajoutez l'attribut enableLocalization="true" au noeud racine:
Ajoutez sur chaque siteMapNode à traduire un attribut ressourceKey avec le nom que vous voulez:
Ajoutez ensuite un fichier web.sitemap.resx dans le répertoire GlobalResources. Pour cela, cliquez avez le bouton droit sur le nom du projet Web dans l'Explorateur de Solutions puis choisissez "Ajouter le dossier ASP.NET / GlobalResources":
Ouvrez le fichier web.sitemap.resx et ajoutez pour chaque noeud une entrée avec le nom de la clé, un point, et le nom de l'attribut dont vous fournissez la traduction. Par exemple, ici j'indique les titres des deux pages ainsi que la description de la page "Page.aspx":
Pour ajouter les textes des autres langues, dupliquez simplement le fichier resx comme pour les pages ASPX.
C'est tout.
Si ça ne fonctionne pas, essayez les points suivants:
- Désactiver le OutputCache sur les pages;
- Vérifier que le fichier resx est dans le répertoire GlobalResources, pas dans LocalResources.
- Vérifiez que vous avez écrit “resourceKey” et non “ressourceKey” (un seul ‘s’). Merci Ayanami.
Comments
Quel est ton problème exactement?