miércoles, 17 de marzo de 2010

SharePoint 2010: Profundizando en el multiidioma.

Sin duda una de las características más demandadas y de la que carecía SharePoint 2007 era la capacidad de crear entornos multiidioma. Finalmente he podido por fin testear más a fondo las anunciadas características multiidioma de SharePoint 2010 y debo decir que me ha sorprendido gratamente la potencia y facilidad con la que he conseguido desplegarlas.

Para poder probar estas características es indispensable que instaleis previamente los language packs de todos los idiomas que querais probar. En mi caso la instalacion la hice en castellano y añadí los languages packs de inglés y francés.

Una vez tengamos los language packs instalados, veremos que si pulsamos en el control  en el control de usuario que nos muestra nuestro nombre en la zona derecha de la Ribbon, nos deja seleccionar y modificar el idioma de presentación:

Lo primero que notaremos al cambiar el idioma es que nos modifica toda la interface de usuario del portal (comandos de la Ribbon, controles, menús de opciones, secciones estándar del menú de navegación, etc.). Sin embargo sabemos por experiencia que en nuestras intranets no nos solemos contentar con modificar la GUI, también nos suelen pedir modificar aspectos como:
  1. Los literales personalizados del menú de navegación.
  2. Los literales que se utilizan en las columnas de nuestras bibliotecas y listas.
  3. El nombre y descripción de los sites
  4. El nombre y descripción de las librerías y listas
 ¿Puede SharePoint 2010 modificar también estos aspectos del portal? Pues (de aquí mi grata sorpresa), ¡Lo cierto es que sí! Además, de una forma muy sencilla, que es ir navegando en el idioma secundario escogido, e ir cambiando directamente los parámetros del site, como su título, o los nombres de la columna de una lista, los nombres de los links del menú de navegación o los nombres y descripciones de las listas de nuestro site. Una vez lo tengamos todo a nuestro gusto, volvemos a cambiar al idioma primario y veremos que se conservan los literales originales... volvemos a cambiar el idioma y veremos que se muestran las modificaciones realizadas en ese idioma. Impresionante, ¿no creeis? A continuación adjunto unas imágenes para los incrédulos, os reto a que encontreis las diferencias por vostros mismos (las más destacadas las marco en rojo):
versión original (español) 

versión modificada (Francés)

Con todas estas posibilidades de personalización del multiidioma cubriremos gran parte de los requisitos que nos suelen pedir nuestros clientes al respecto (ya sabemos que el contenido en sí nunca va a ser auto-traducible), y el resto (que se muestren solo los elementos correspondientes al idioma seleccionado) nos lo podemos seguir manejando con vistas o permisos a nivel de ítem...

Sin embargo, ¡Todavía hay más! Cuando añadimos el primer pack de lenguaje a nuestra granja de SharePoint 2010, inmediatamente veremos que aparecen nuevas opciones en el menú de configuración de nuestros sitios, relativas a la configuración del multiidioma:
 La primera de ellas nos permite definir el idioma primario y los alternativos, así como indicar si queremos que automáticamente se guarden las traducciones en nombres de sites y listas a medida que naveguemos por las configuraciones de los idiomas alternativos:


Las opciones de exportar e importar traducciones hacen referencia al fichero que internamente SharePoint 2010 utiliza para pintar los literales de un y otro idioma. Internamente SharePoint utiliza ficheros .resx para implantar estas traducciones (esto no es nuevo, ya se podía usar en 2007 pero de una forma mucho más manual). Para cada idioma guarda un fichero resx distinto, de forma que al cargar la página lee los literales personalizados del idioma correspondiente y los escribe tal cual los lee del propio fichero resx.

La estructrua de estos ficheros resx sería motivo de un post propio y no quiero alargar más este, así que sencillamente decir que se basa en una estructura xml para definir cada literal, y os dejo una última imagen de una pequeña sección del fichero para que podais entender rápidamente de qué estamos hablando:

¿Para que nos puede servir importar y exportar estos ficheros? Pues para pasarle a algún traductor profesional el fichero en un idioma para que lo traduzca a otro sin necesidad de entrar en sharepoint, o para cargar directamente en un entorno (p.e. producción) todas las traducciones realizadas en otro (p.e. pre-producción) sin tener que realizar más que unos pocos clicks de ratón.

Sin duda Microsoft ha dado un paso de gigante en esta versión para satisfacer las necesidades multiidioma que la plataforma SharePoint pedía a gritos. ¿Que se puede pedir más? Sin duda, pero francamente creo que el avance ha sido considerable, y que nuestras implantaciones multiidioma en SharePoint dejarán de ser un temible factor de riesgo y podremos extenderlas de forma mucho más sencilla que hasta la fecha.

¡ Saludos !

9 comentarios:

Anónimo dijo...

Hola!!! podrias realizar un blogs sobre backups en moss 2010, es tanta la diferencia entre 2007 y 2010....y bueno yo tengo varios problemas con el backup que NECESITO hacer,me da un error de que no se puede hacer un cache seguro de la direccion (una direccion de archivo.css)te habras topado con este error, por favor necesito ayuda!!!!1

Atte

Janeth

Ignasi Tebé Tena dijo...

Hola Janeth.

Prometo intentar realizar un post sobre los backups del 2010, aunque debo reconocer que es una funcionalidad que todavía no he probado. De todas formas, ¿en qué versión estás trabajando? ¿Es la beta2 o la RC?.

Este mes estoy bastante liado con varios proyectos y preventas, pero intentaré encontrar tiempo para satisfacer tu peticion.

Saludos.

Anónimo dijo...

Buenos dias,

Una pregunta, indicas que para controlar el contenido de las listas se puede hacer con vistas o con restricciones. En el caso de que sea por vistas, me imagino que añadiendo una columna "Idioma" y haciendo el filtro segun el idioma que haya escogido el usuario, pero, Cómo puedo saber cual es el idioma que ha seleccionado el usuario a la hora de realizar la vista? Tengo algun tipo de variable global que me lo indique?

Gracias

Anónimo dijo...

Buenas de nuevo,

Me surge otra duda, hay manera de cambiar la vista automáticamente segun el idioma seleccionado por el usuario, en el caso de que realices una vista especifica para un idioma y otra para otra.

Gracias

Ignasi Tebé Tena dijo...

Buenas tardes,
Una posible solución sería la que apliqué personalmente a un cliente: Ellos tenían un metadato extra en el user profile de su AD que indicaba el idioma preferido del usuario (este campo se podría agregar también desde la gestión de user profiles del sharepoint y que cada usuario lo pudiera modificar desde editando su perfil en su sitio personal). Entonces creabamos audiencias de usuarios, para los diversos idiomas posibles, y en las páginas de destino los webparts de contenidos iban destinados a audiencias idiomáticas específicas. Los filtros se definian a nivel de webpart. Implicaba tener diversos webparts(vistas) en cada página de contenido de forma simultanea.

Existen otras formas de plantearlo, pero esta sería una de ellas.

Saludos!

Anónimo dijo...

Muchas Gracias.

Una cosilla, no se podría usar la nueva funcionalidad del 2010 con el MUI para cambiar dichos webparts(vistas).
Porque si añadimos los lenguage packs para que cambien las etiquetas del sistema y las etiquetas de navegacion, el usuario puede cambiar el idioma con el menu de arriba, por lo tanto el tema de las audiencias no nos valdría.

Ignasi Tebé Tena dijo...

Bueno, no valdría la solución desde el punto de vista de que estaríamos mostrando siempre el mismo lenguaje a pesar de que el usuario lo cambiara manualmente. En este caso, la solución ideal sí que sería crear una lógica que mostrara el contenido en el idioma seleccionado. Para ello, los tipos de contenido deberían preparse para trabajar en multiidioma (añadir alguna columna de sitio que indique el idioma del contenido). La lógica podría ser más o menos compleja (por ejemplo ¿Qué hacer si el usuario selecciona "alemán" pero el contenido solo está traducido al "inglés"?). Llegados a este punto deberíamos plantearnos si el esfuerzo a realizar es más costoso o no que recurrir a productos de terceros ya desarrollados (como PointFire). Todavía no he profundizado en el tema tanto como para dar detalles de la solución, pero estoy trabajando en un proyecto que requiere algo muy similar y espero poder publicar una entrada con las conclusiones durante el próximo mes de Mayo.

Saludos!

Anónimo dijo...

Buenos días,

En primer lugar darte las gracias por todo este blog. Nos ayuda mucho a los que de algún modo tenemos que trabajar con SharePoint.

Llevo años programando en ASP pero ahora me veo por motivos laborales a trabajar con SharePoint 2010. Aunque lo poco que he visto me gusta aún me encuentro muy verde.

He creado un site, y estoy con la edición de la página maestra. He duplicado el template "nightandday" y ahora le estoy haciendo un pie.

Se lo he creado desde cero pero requiero que sea editado al cambiar idioma. He editado el fichero resources y añadido unas listas con los valores según el idioma...

Ahora bien, ¿cómo invoco cada archivo resources según el idioma?

He probado con

< asp:Literal runat="server" text="<%$Resources:wss,language_value%>" >

Pero esto lo que hace es que me muestra el texto "es-es", "en-us", etc... cuando cambio de idioma.

En fin, espero que alguien me pueda aclarar esto porque estoy muy perdido y al ser una herramienta de pago y tan nueva apenas encuentro en internet algo de valor.

Gracias de antemano,

Agencia Web dijo...

Los artículos que se publican en este blog tienen un valor incalculable, con seguridad estaré pendiente de otras publicaciones.

Saludos.