Skip to main content

Tutoriel: Localisation du Web.sitemap

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

moha1978 said…
J'ai suivi à la lettre ton tutorial , tu n'aurais pas oublié un petit détail?
Arnaud said…
@moha1978: Je ne crois pas avoir oublié quoi que ce soit. Si ce n'est qu'il faut indiquer quel langage utiliser donc par exemple utiliser l'attribut UICulture="auto" comme je l'indique ici.

Quel est ton problème exactement?
Unknown said…
Juste une petite attention aux futurs visiteurs: il faut faire attention de bien mettre "resourceKey" avec 1 seul "s" et pas "ressourceKey" avec 2 "s". Cela évitera les problèmes rencontrés par beaucoup de monde sur le net.
Arnaud said…
@Ayanami: merci pour la remarque, je l'ajoute de suite dans le corps du billet. C'est vrai que l'erreur est facile car en français on met deux "s" à "ressource". D'ailleurs, on a le même problème en Siverlight et WPF: il faut écrire StaticResource, pas StaticRessource.

Popular posts from this blog

Learn Meteor book available

I'm pleased to announce the general release of my Learn Meteor book. It is now available as an ebook or print book from various sources: Learn Meteor print (paperback) on Lulu Learn Meteor ebook on LeanPub Learn Meteor ebook on Barnes & Noble Learn Meteor ebook on iBooks Learn Meteor ebook on Kobo Learn Meteor ebook on Scribd Learn Meteor ebook on Inktera Page Foundry Learn Meteor ebook on 24symbols Learn Meteor ebook on Amazon US Learn Meteor ebook on Amazon UK Learn Meteor ebook on Amazon France Learn Meteor ebook on Amazon Deutschland Learn Meteor ebook on Amazon Canada Learn Meteor ebook on Amazon India Learn Meteor ebook on Amazon Brasil Learn Meteor ebook on Amazon Mexico Learn Meteor ebook on Amazon España Learn Meteor ebook on Amazon Italia Learn Meteor ebook on Amazon Netherlands Learn Meteor ebook on Amazon Japan Learn Meteor ebook on Amazon Australia More sources are coming soon for the print version. Learn Meteor has been a fun experienc