Inherits Cloud

Loving Microsoft Cloud, specially Office 365

Menú de selección de idiomas en SharePoint 2010

Si estáis trabajando con sites multi-lenguaje, seguramente querréis disponer de un menú con los distintos idiomas en los que se ofrece el site. Si además, esto es algo que ya dominabais en MOSS 2007, seguramente habréis intentado incluir en vuestra página (seguramente en la Master) el control: VariationsLabelMenu.ascx, que se encuentra en la carpeta:

<Program Files>Common FilesMicrosoft Shared DebugWeb Server Extensions14TemplateControlTemplates

Si lo hacéis, veréis que el listado deseado no aparece por ningún sitio, esto es porque este control trae alguna novedad en la versión 2010. Para empezar, en la versión del 2007, el archivo VariationsLableMenu.ascx, tenía un código similar al siguiente:












 

Sin embargo, en la versión 2010, únicamente define el control “VariationDataSource”, de ahí que al agregarlo en la página no aparezca nada.

El control “VariationsLabelEcbMenu” se ha quedado obsoleto, parece ser que por problemas de rendimiento: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.variationslabelecbmenu.aspx

Si queremos sacar el listado de variantes, tenemos que tratar directamente contra el DataSource. En este caso hemos utilizado un DataList:












%>

 

Ahora bien, metemos ese código directamente en el fichero “VariationsLabelMenu.ascx” ??? Pues yo prefiero crear un ascx personalizado y, o bien lo agrego directamente a la master, o bien hago uso del SharePoint:DelegateControl que viene definido para ese control:


La definición del ControlId, la podemos encontrar en el fichero: VariationsFlagControl.xml, que está en:

<Program Files>Common FilesMicrosoft SharedWeb Server Extensions14TEMPLATEFEATURESPublishingVariationsFlagControl.xml

y que tiene el siguiente contenido:






























Para apuntarlo a nuestro nuevo ascx, basta con cambiar al ControlSrc del Id=VariationsFlagControl.

Siguiendo cualquiera de los 2 mecanismos, lo que obtenemos finalmente es nuestro menú de los idiomas (variantes) disponibles, que al pintarse desde un Repeater o un DataList, podemos personalizarlos como queramos!

image

Para acabar, cuando se implementa un portal multi-lingüe, siempre aparece la pregunta de cómo debe comportarse cuando el usuario cambia de idioma. Debe ir a la home de ese idioma? debe cambiar el idioma pero manteniendo la página en la que estábamos?… pues bien, podemos lograr cualquiera de las 2 cosas con tan sólo cambiar la propiedad “LabelMenuConfiguration” del control VariationDataSource. Los valores disponibles y su funcionamiento lo tenéis en el siguiente enlace: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.variationdatasource.labelmenuconfiguration.aspx

Os dejo algunas de referencias que me han sido de ayuda para entender este tema:

Para acabar, quiero agradecer la ayuda de Juan Carlos González y de mi compañero Paco Martí.

Espero que os sea de utilidad.

Saludosss!

2 Comentarios

  1. Excelente post Luis!

    Un saludo

    JC’s

  2. lmanez

    29 Agosto, 2010 at 8:10 pm

    Muuuchas gracias!!
    Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

© 2017 Inherits Cloud

Tema por Anders NorenArriba ↑