lunes, 5 de octubre de 2009

Soluciones Multiidioma Sharepoint.


En la gran mayoría de implantaciones MOSS para grandes corporaciones, suelen hacerme siempre una misma pregunta: ¿Es SharePoint 2007 una solución multiidioma? Lo cierto es que éste es un tema un tanto complejo que aun hoy suele haber bastante desinformación. Intentaré resumir en este blog las principales soluciones al respecto.

Habitualmente el CIO de una empresa o cualquier responsable con el que tengamos entrevistas de requerimientos funcionales, entiende que una solución de portal es multiidioma cuando tanto la interface de usuario como los contenidos, tienen mecanismos automatizados para mostrar al usuario la información en el idioma que este elija. En el caso de SharePoint esto implica tanto los textos de los menús de opciones, controles, webparts, nombres de las columnas, nombres de las listas, textos de los metadatos asociados a cada ítem y ficheros incluidos en las listas.

Sin embargo, la principal gestión multiidioma que incorpora SharePoint son los llamados "languages packs". Estos lo único que hacen es permitir crear estructuras de portal (sites collections y sites) en un idioma u otro. Es decir, el language pack Español me permitirá poder crear sites en Español y el language pack Frances crear sitios en francés. Pero estamos hablando de estructuras totalmente independientes, sin ningún tipo de relación entre sí. Es decir, puedo tener un site en español y otro en francés, pero no estará vinculado de ninguna forma el uno con el otro.

También SharePoint incorpora una característica que sí realiza algunas automatizaciones multiidioma llamada "variaciones de sitio". Es es este punto donde suele haber una mayor confusión, ya que dicha característica está muy limitada en prestaciones y no suele cubrir las necesidades multiidioma del cliente.
Básicamente lo que hacen las variaciones de sitio es crear de nuevo dos estructuras separadas (previa instalación de los "language packs" anteriormente mencionados), donde definiremos cuál de ellas es la principal y cuáles serán las variaciones. Es decir, podemos indicar que el site en Español será el principal y que tendrá variaciones en Inglés, Francés y Alemán. Con esto se logran 2 automatizaciones básicas:
  1. Que el árbol de sites se replique automáticamente cuando creemos un subsite dentro de cualquiera de las estructuras (principal y variaciones). Es decir, si dentro del site español genero un subsite departamental, este subsite también se creará en en las variantes de Inglés, Francés y Alemán.
  2. Que aquellas páginas web creadas mediante la característica de Publicación de MOSS, se propaguen automáticamente en las variaciones. El contenido copiado será siempre en el idioma original (MOSS nunca traducirá textos de contenidos automáticamente), pero se puede llegar a configurar para que lance un flujo de trabajo que avise a cada traductor correspondiente que tiene una nueva página web para traducir. Posteriormente, el traductor, manualmente en cada lenguaje traducirá el contenido y lo publicará en la variante correspondiente. Atención a este punto, ya que esto solo afecta a las PAGINAS WEB REALIZADAS CON LA CARACTERÍSTICA DE PUBLICACIÓN, nada más. Es decir, si tenemos bibliotecas de documentos, foros, listas personalizadas, encuestas, calendarios, wikis, etc. SharePoint no sincronizará NADA con el resto de variaciones. Es realmente importante tener en cuenta esta limitación.
Además debemos considerar que uno de los grandes inconvenientes de las variaciones de sitio es que generan estructuras de datos duplicados. Es decir, para el ejemplo de un origen Español y variantes en Inglés, Francés y Alemán, estamos creando el mismo contenido 4 veces, con el coste de almacenamiento en base de datos correspondiente.

Entonces, si los language packs y las variaciones de sitio son insuficientes para nuestras soluciones multiidioma, ¿Qué podemos hacer?

Básicamente existen 3 soluciones:
La primera de ellas solo es aplicable cuando queremos aplicar el multiidioma a pequeños desarrollos o portales limitados en cuanto funcionalidad, y consiste en manipular crear varias audiencias de usuarios (una para cada idioma) y posteriormente configurar todo el site para que muestre unos u otros datos (webparts, vistas, Interface de usuario) en función de a qué audiencia pertenece el usuario. Esta solución es altamente engorrosa de administrar, ya que estamos hablando de crear una vista por cada idioma en cada una de las listas que formen parte del portal, una columna calculada con el título modificado (en otro idioma distinto al original), un webpart distinto en cada página de webparts… Francamente, en algún proyecto me he visto forzado a utilizar esta solución y no lo recomiendo.

La segunda solución sería programar nosotros todo un sistema multiidioma, programando en .NET y echándole horas y horas para conseguir una solución robusta y amigable. Tan solo recomendable si vamos a utilizarla posteriormente en muchos proyectos donde podamos reutilizar la misma solución, ya que para un único proyecto no tiene sentido invertir en tanto gasto.

La tercera solución, y la que suelo recomendar encarecidamente es la de utilizar una solución ya desarrollada por terceros. Quisiera dejar constancia que no tengo ninguna relación con la empresa desarrolladora en questión y que tan solo es mi opinión personal después de pelearme con esta problemática en múltiples proyectos. Si algún lector del Blog conoce una herramienta similar o mejor que la comentada aquí, estaré muy agradecido por la aportación.

La solución que personalmente recomiendo es PointFire de IceFire Studios, siendo para mí la principal herramienta multiidioma para SharePoint en el mercado. Muchas empresas son reacias a pagar licencias de productos de terceros, pero debemos hacerles entender que esta solución ahorra muchos costes en tiempo de desarrollo y administración de la plataforma. PointFire es un producto sólido que lleva 2 años y medio en el mercado y que viene apadrinada por la propia Microsoft. Me remito al seminario que IceStudios quiere realizar en la próxima SharePoint Conference de las vegas, donde ya presentará su producto PointFire2010. Si, está claro que la solución multiidioma de SharePoint 2010 también va a ser PointFire.

Así que como resumen, si queréis ahorraros muchos dolores de cabeza y tener un SharePoint operativo con una capacidad multiidioma "como Dios manda", no lo dudéis, la solución es PointFire. ¿Cómo funciona exactamente PointFire? Eso, amigos, será el material de otro post muy próximo.

¡Por hoy es todo!.

No hay comentarios: