Bonjour à tous,

La plupart des développeurs .Net le savent bien, lorsqu'il s'agit de faire des sites multilingues, en dehors des fichiers de ressources point de salut ! C'est encore plus vrai lorsque vous travaillez avec les fichiers CustomSiteAction.xml, CustomQuickAccess.xml ou CustomEditingMenu.xml.

Ces fichiers que vous pouvez trouvez dans le répertoire EditingMenu de la gallerie de page maîtres (lorsque le site est un site de publication) servent respectivement à modifier

  • le menu "Actions du site" (pour un site de publication),
  • la barre d'outils de modification de page (appelé aussi Authoring Console en anglais)
  • et enfin les menus de cette même barre (Page, Flux de travail, Outils,...).

Vous pouvez y ajouter, remplacer ou supprimer des entrées grâce à des noeuds "ConsoleNode".

Tout ce passe bien tant que vous n'utilisez pas directement d'accents ou de caractères autres que ASCII dans le fichier. En effet le fichier est au format XML mais ANSI par défaut. Si vous indiquez un caractère accentué (par exemple dans une description de menu) le fichier n'est plus conforme (et refuse de s'afficher dans IE par exemple). De plus si vous tentez de l'insérer tel quel dans SharePoint vous obtiendrez un joli message : "L'index se trouve en dehors des limites du tableau" (notez au passage la pertinence du message d'erreur).

"Qu'à cela ne tienne" me diront les plus aguérris, "Enregistre donc ton fichier en UTF-8 !" Et d'autres de rajouter : "banane !"

"Oui mais," rétorquerais-je (pratiquement du tac au tac, le temps de finir mon pain au chocolat...), "là c'est SharePoint qui n'est plus d'accord", il nous renvoit d'ailleurs ce message (encore une fois très explicite...) : "Le noeud spécifié ne peut pas être inséré comme enfant valide de ce noeud, car le noeud spécifié n'est pas du type correct"

"Mais crévindieu" s'exclament-t-alors les plus aguerris de naguerre, "comment qu'cé ti qui font chez Microsoft pour n'en n'avoir des accents dans leurs descriptions, eux ?".

La réponse est simple : fichier de ressource !

En l'occurence le fichier cms.resx que vous pouvez trouvez dans le répertoire "c:\inetpub\wwwrroot\cheminversvotrewebapp\App_GlobalResources\".

Vous savez donc maintenant ce qu'il vous reste à faire... Non ? Et bien, ajouter un nouveau fichier de ressource que vous déploierez grâce à une solution (en utilisant un noeud : ApplicationResourceFile) et faire référence à cette ressource dans vos fichiers de configuration, et vous voilà à présent roi de la modif des menus d'un site de publication.

Bon code à tous !