Configurando y trabajando con el idioma español del .NET Framework 4

Desde el punto de vista de programador cuando construimos una aplicación ASP.NET usando el motor de ejecución .NET Framework instalado en el idioma inglés, vemos que los mensajes auto generados por el motor de ejecución estan en inglés. Mensajes como las descripciones de los controles de validación, mensajes de un control de tipo LogIn, los títulos de las acciones de un GridView que soporta edición o eliminación, los títulos de los opciones de un control de tipo calendario e innumerables ejemplos más.

Control LogIn con la configuración predeterminada en ingles

image

Control GridView con la configuración predeterminada en ingles

image

Para resolver este tema de la auto generación de mensajes en el idioma que requerimos, necesitamos configurar las características de Globalización en el web.config y también necesitamos ejecutar la instalación del paquete de idioma del .NET Framework en español. Esta demás mencionar que podemos mejorar nuestra productividad respecto a la edición manual de tanto mensaje.

Lo que haremos es descargar el paquete de Idioma en español del .NET Framework, en este caso descargaremos el paquete de idioma en español del .NET Framework 4 de aquí. Ojo, este paquete no contiene los ensamblados o el motor de ejecución del .NET Framework sino más bien los mensajes en español de los controles, errores y elementos internos del motor de ejecución.

image

Toma las consideraciones pertinentes en caso de utilizar esta alternativa, ya que tendrás que llevarte a tus servidores de producción el mismo instalador de paquete de idioma que estés usando para continuar con estos beneficios.

Una vez que tengas instalado el paquete de idioma en español del .NET Framework 4.0, lo que falta es implementar la configuración a nivel Globalización y Localización. Globalización y localización en el contexto de.NET se refiere a especificar en nuestro aplicativo las características de idioma y manejo de datos de tipo moneda, calendarios y formatos de fecha correspondientes, esta configuración puede aplicarse en distintos niveles, a nivel global “toda la aplicación” o a nivel página “solo una página” o a nivel programático “comúnmente usado para cálculos monetarios o de fechas en ciertas porciones de nuestra aplicación”.

Vamos a configurar a nivel global la globalización de nuestra aplicación web. Accedemos al archivo web.config de nuestro aplicativo y agregamos la siguiente línea:

<globalization culture=”es-MX” uiCulture=”es-MX”/>

Esto sobre escribe cualquier configuración relacionada con el idioma en nuestra aplicación web especificando que usaremos las características del idioma español y en particular moneda en pesos. Por ejemplo si usamos es-ES también estaríamos usando idioma español solo que con moneda de en euros. También podemos usar la palabra auto dentro de estos atributos para especificar que la configuración de la localización provenga de las opciones de configuración del idioma establecidas en el navegador de internet del usuario que esté haciendo la petición a la aplicación.

Ahora sí, cualquier control con el que arrastremos sobre nuestro paginas ASP.NET en tiempo de ejecución tendrán su descripción totalmente en español.

Control LogIn con la configuración del idioma en español

image

Control GridView con la configuración del idioma en español

image

Suerte!

Originalmente publicado en msmvps.com

Obteniendo el correo electrónico de un campo de tipo Persona sin programación en SharePoint 2007

Sucede que algunos clientes en ocasiones buscan tener cosas que desde el punto de vista técnico tendemos a pensar que no tienen sentido, sin embargo para nuestro cliente si y si así es el caso, para nosotros también.

Problema

Solicitaron visualizar en los elementos de una lista el nombre y correo electrónico de un campo de tipo persona y claro, lograrlo sin programación y para ayer.

Solución

Convertir a DataView WebPart la página de AllItems.aspx de la lista en cuestión para agregar una columna nueva y con XSLT buscar en el contenido del campo de tipo Persona el correo electrónico para mostrarlo. Sucede que un campo “Field” de tipo Persona almacena en su interior contenido HTML para mostrar un hipervínculo que apunta al perfil o My Site del usuario y dentro de este contenido se encuentra el correo electrónico. A continuacion un ejemplo del contenido del campo Persona.

<nobr><span><A HREF=”/Global/temp/_layouts/userdisp.aspx?ID=26″>haaron.gonzalez</A><img border=”0″ height=”1″ width=”3″ src=”/_layouts/images/blank.gif”/><a href=’javascript:’ onclick=’IMNImageOnClick();return false;’ class=’ms-imnlink’><img name=’imnmark’ title=” border=’0′ height=’12’ width=’12’ src=’/_layouts/images/blank.gif’ alt=’No presence information’ sip=‘haaron.gonzalez@splatin.com’ id=’imn_10,type=smtp’/></a></span></nobr>;

He marcado en verde los datos que me interesa obtener. Lo que haremos es utilizar XSLT para buscar dentro del HTML el atributo “sip” el cual retorna el correo electrónico que deseamos.
El resultado es:

<xsl:value-of select= ‘substring-before(substring-after(@Persona, concat(“sip=”,$dvt_apos)), $dvt_apos)’ disable-output-escaping=”no”/>

Veamos entonces como lograr lo que nos pide el cliente

1. Cargamos SharePoint Designer 2007 y abrimos el sitio donde se encuentra la lista en cuestión.

clip_image001

2. Convertimos la lista en DataView WebPart dando clic derecho sobre la lista y seleccionando la opción Convert XSLT Data View

image

3. Agregamos una nueva columna en el DataView WebPart, nos posicionamos justo despues del campo Persona y damos clic derecho para cargar el menu contextual y elegir la opcion.

image

4. Dentro del HTML de la pagina pegamos el código XSLT que busca dentro del campo Persona el correo electrónico. También no olvides agregar el título de la columna como “Correo electrónico”

image

Y listo damos check in al archive AllItems.aspx y probamos nuestra solución.

image

Suerte!

Originalmente publicado en msmvps.com

Como leer programáticamente las propiedades mapeadas de un perfil de usuario de SharePoint 2007

Esta es la segunda ocasión que me preguntan lo mismo y decidí grabar un breve video como  importar propiedades especificar del directorio activo hacia SharePoint 2007. En este video vemos como trabajar con los perfiles de usuario de SharePoint 2007 para mapeo de propiedades del directorio activo y acceso programáticamente a las mismas.

En este video vemos como realizar el mapeo de propiedades del directorio activo a propiedades del perfil de usuario de SharePoint asi como tambien como acceder programaticamente para obtener sus valores.

HG

Originalmente publicado en msmvps.com

2010.Dispose(); Year 2011 = new Year(“Salud”,”Exito”);

Mientras más edad tengo más rápido siento que pasa el tiempo y la única sensación que llega a mi alma es la de vivir consiente cada momento. Gracias a los que nunca envejecen y nuevos amigos que durante este año con su carácter, comprensión y amabilidad compartimos tantas luchas. Salud, exito y paz para todos en el 2011.

Reciban un fuerte abrazo de mi parte.

Haaron Gonzalez

Originalmente publicado en msmvps.com