SharePoint 2010. Localización con la Variación actual

SharePoint utiliza la funcionalidad de Variaciones para dar la capacidad a los sitios de publicación de multi-idioma. Este método nos ofrece una gran ventaja que nos permite tener páginas en diferentes idiomas y con distintos contenidos o distintos layouts, y todo de la mano de los autores de contenido.

Uno de los problemas de utilizar variaciones es que un usuario de un sitio público con su navegador en español puede ver la web en la variación en Alemán y todo los Web Parts que hemos localizado, con ficheros de recursos, aparezcan en español porque es el idioma que obtenemos en el CurrentCulture.

Os lo explico con un ejemplo. Tenemos un Web Part que obtiene, de un servicio web, el tiempo de una ciudad. Este servicio web nos devuelve la siguiente información:

  • Current Condition. Soleado, Nublado, Lluvioso, etc.
  • Temperature. Temperatura actual
  • Icon. Imagen que identifica el tiempo actual.

Si localizamos este Web Part necesitamos conocer que idioma vamos a leer del fichero de recurso, algo como esto:

String conditionText = SPUtility.GetLocalizedString("$Resources:ConditionText", "Time", (uint)culture.LCID);

Lo normal es que utilicemos System.Threading.Thread.CurrentThread.CurrentUICulture.LCID para obtener la localización adecuada para el usuario. Aquí es donde podemos tener el problema, el usuario puede tener su navegador en Español, con lo que si tenemos instalado este idioma en nuestro servidor, el LCID corresponderá al idioma español, y el usuario esté visualizando la variación correspondiente al idioma alemán. Esto se traduce en un problema de consistencia en la localización que percibe el usuario.

Para solucionar este problemilla, debemos de obtener el LCID de la variación actual y no la del usuario.

var pubSite = PublishingWeb.GetPublishingWeb(SPContext.Current.Web);

System.Globalization.CultureInfo variationCulture =

new System.Globalization.CultureInfo(pubSite.Label.Title);

var lcid = variationCulture.LCID;

Tenemos que obtener el sitio de publicación actual y con este la cultura correspondiente a la etiqueta de la variación (Label). Con este pequeño cambio, conseguimos la consistencia en la localización de nuestras páginas.

 

Saludos a todos…

2 pensamientos en “SharePoint 2010. Localización con la Variación actual”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *