Colocar fecha en español CalendarExtender
Ajax control toolkitHola de nuevo:
En mi trabajo me han solicitado crear una aplicación la cual trabaja con fechas, para lo cual me puse a buscar distintos controles para generar calendarios sin ninguna suerte.
Hasta que le pregunté a un amigo (de esos que saben más que uno) como podía colocar un calendario y me explico que el ajax control toolkit venía con una herramienta para desplegar un calendario. Baje el ajax control toolkit y ajax extensión de la siguiente página
Para hacer funcionar el calendario hemos de colocar un TextBox un ScriptManager (base para el manejo del Ajax control toolkit) y un control llamado CalendarExtender .
Para que esto funcione debemos seguir los siguientes pasos
1. Agregar ScriptManager
2. Agregar un TextBox (si se desea cambiar el id)
3. Agregar el CalendarExtender
4. Asignar como TargetControlID el ID del TextBox que colocamos anteriormente
Hasta ahí todo bien no??
Bueno eso es lo que cualquiera pensaría (incluido yo) pero acá se nos presenta el primer problema.
EL CALENDARIO CON UN FORMATO «RARO»
Esto debido a que la configuración nativa del CalendarExtender es la norteamericana (mes/dia/año) y para colmo de males
EL TEXTO APARECE EN INGLES OMG
y con el siguiente formato
Para solucionar este problema debemos seguir los siguientes pasos.
Seleccionamos el ScriptManager y accedemos a la ventana de propiedades
Cambiamos a True los siguientes valores.
EnableScriptGlobalization
EnableScriptLocalization
Por ultimo accedemos a la seccion de código de la página y en la primera linea agregamos los siguientes parámetros
Culture=»Auto»
UICulture=»Auto”
Ejemplo:
<%@ Page Language=»VB» AutoEventWireup=»false» CodeFile=»pruebaCalendario.aspx.vb» Inherits=»pruebaCalendario» Culture=»Auto» UICulture=»Auto”
%>
Despues de esto realizamos las pruebas y vemos que el calendario está en españolAdemás el formato cambió a Dia/Mes/Año
EDICION IMPORTANTE.
No lo he probado aún pero Jorge en uno de los post de más abajo pone el siguiente enlace para cambiar la palabra «today»
Pruebenlo y me comentan.
Pronto vuelvo con más post.
Gracias Jorge
——————————————————————————————————————————————-
ACTUALIZACIÓN:
Gracias a Dragon que envió la siguiente actualización (editada para ser mas compresnible)
-En mi ToolkitScriptManager tambien tengo “EnableScriptGlobalization=”true” EnableScriptLocalization=”true”»
-Anteriormente tenia en mi pagina “uiCulture=”auto” culture=”es-MX”», pero no traducia el “Today” asi que en el load de mi pagina cargue los atributos;
“Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(“es-ES”)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(“es-ES”)”, con las librerias correspondientes;
“Imports System.Threading
Imports System.Globalization”
Nota:solo traduce con el valor de “es-ES”, es por eso que lo cargue en el load.
———————————————————–
Stiwart
08/01/2008
Muchas gracias por el toque yo estoy trabajando tambien con ajax y tenia que hacer ese cambio por suerte encontre este articulo rapidamente, gracias me ahorraste mucho trabajo
Gerardo Lopez
21/01/2008
Pura Vida!!. Gracias por el Tip. me funcionó muy bien.
OscarM
25/01/2008
Muy buen tip… sin embargo no se si existe alguna forma de cambiar el ODIOSO mensaje «Today»por «hoy»
k3n0
25/01/2008
Buscando información de como cambiarlo,
Espero atender la solicitud lo antes posible
Airam
01/04/2008
Eres un crack, gracias a ti aprobe el modulo de integracion.
Wílmer
02/04/2008
Gracias, estoy realizando un proyecto, como trabajo final de un curso de la universidad, para el que decidí usar algunos detalles en Ajax.
entre otros, el CalendarExtender, pero la fecha del calendario me salía en inglés, cuando es una página totalmente en español…
Hice lo que dijiste y funcionó perfectamente…
Muchas gracias…
Raquel
07/04/2008
Yo también estoy intentando quitarle el «Today» por «Hoy» pero no lo doy conseguido y de eso que he seguido las instrucciones anteriores. Agradecería mucho que quien lo haya averiguado nos lo explique. Gracias
Rafa
09/04/2008
Gracias por estas soluciones sencillas claras y rápidas. Lo he solucionado en un segundo.
Martin Neu
08/05/2008
Hola!
Para cambiar “Today” por “Hoy”, segui estos pasos:
1 – Abri el proyecto: AjaxControlToolkit.csproj
2 – En la carpeta ScriptResources abri el archivo ScriptResources.resx
3 – Busca en el texto la palabra Today y cambiala por Hoy.
Bueno, espero te sirva!
Saludos!!
k3n0
08/05/2008
Ya lo apliqué y funciona … pronto se viene la explicación con imágenes.
Gerardo
14/07/2008
No se complique mucho usar «AJAX» es muy sencillo y los ejemplos de todos los controles estan aqui:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/
k3n0
14/07/2008
Estando todos los controles y su uso, no es malo una ayuda extra no crees 😉
Marco
21/07/2008
Gracias!!. No encontraba como configurar este detalle
Gustavo Roa
21/08/2008
Excelente truco! me ha servido bastante, Gracias!
dEiBeAt
16/09/2008
Hola a todos,
alguien sabe como puedo localizar mi calendario cuando esta metido dentro de un web usercontrol??????
Gracias por adelantado
clara
15/10/2008
Me ayudo mucho gracias lamentablemente algo raro pasa con mi calendar solo sale lunes martes miercole jueves y viernes y no dos dias restantes como lo areglo ?
k3n0
15/10/2008
Clara:
intenta con esto
el problema mío era que no me mostraba los domingos, pero de todas formas te puede servir.
Sergio Zavala
27/10/2008
Gracias por el tip, este detalle del Script Manager no lo había notado y me traía de cabeza.
Alejandro
08/01/2009
Muchisimas Gracias-!!!
Pablo Alejandro Pérez Acosta
08/01/2009
Gracias, me sirvió su ayuda
AF
22/01/2009
Muchas gracias!! Muy util!
Fernando
16/03/2009
En la pagina de los demos de ajax, el calendar muestra hoy en vz de today. La solución mas adecuada no es cambiar el valor «today» por «hoy» en el codigo fuente. Debe haber una forma!!!!!
k3n0
16/03/2009
Instalé la última versión del ajax Control Toolkit y resuelve el problema por si misma.
Fernando Cruzalegui
16/03/2009
EnableScriptGlobalization=true
EnableScriptLocalization=true
Culture=”Auto”
UICulture=”Auto
Today!!!!! No soluciono el problema. No quiero modificar el codigo porque en la pagina del los ejemplos sale hoy y ellos no han modificado el codigo ya que, estoy seguro, si esa misma pagina se abre en Francia, sladrá «Aujourdui». Sin cambiar el código. Ayudenme!!!
Fernando Cruzalegui
16/03/2009
puedes indicarme q arvhico exacatmente instlaste? yo tengo el vs 2008 tambien instale la q supuestamente es la ultima version del tool kit y tenog los 2 true y los dos auto confirgurados pero nada. me estoy desepserando gracias
juanelo
20/03/2009
muy bueno, me ayudo mucho, pero como puede sobresalir(con un color distinto) el dia actual…
rodrigo
17/04/2009
A mi me da mal el formato me aparecen solo tres columnas con los datos ej,
lu jue sab
1 4 6
8 11 13
et, et, et, se les ocurre a que se pueda deber ???
gracias
rodrigo
18/04/2009
ya lo solucione ,resulta que tenia asignada una Css a la masterpage y usaba el table con formato para varias tablas , esto lo tomo como suyo tambien el caledario (es una tabla) y no me mostraba todos los dias.
saludos
Esteban
05/05/2009
Compadre me has salvado
Muchísimas gracias!!!
ffffff
28/05/2009
Para los que tienen el problema de cambiar el «Today» por «Hoy» es muy simple temia ese problema y luego de buscar encontre la solucion:
Eso pasa por que solo importan el archivo AjaxControlToolkit.dll por lo que en el bin solo tenemos referencia a esa libreria que esta en ingles, por eso encuentran en el codigo «Today» que es lo que algunos cambian por «Hoy».
Solamente agreguen a la carpeta Bin el AjaxControlToolkit.resources.dll correspondiente al idioma que quieran(en este caso el que esta en la carpeta «es») y ya les aparece en español.
Recuerden que todos los .dll estan en la carpeta AjaxControlToolkit\SampleWebSite\Bin
una vez que descomprimimos el archivo donde esta el ajaxcontrolkit. Si tienen solo el .dll del ajaxcontrolkit en la pagina oficial se pueden bajar todo completo.
Jose
08/02/2010
Saludos, he probado tu opción y resultó el problema es cuando publico el sitio…todo me sale en ingés de nuevo….sabés que pueda hacer para esto.Saludos
k3n0
24/02/2010
Revisa donde se Linkea a la dll del ajaxControlToolkit. si a una dll que tu subiste o a la dll del servidor (como la mayoría de los servidores son norteamericanos o están configurados en inglés puede que al poner culture auto te va a dejar por defecto la cultura del servidor)
Si no revisa la cultura de tu servidor, de no funcionarte debieras «forzar» a que el idioma sea español
Seteando el cultureInfo a «ES-es» o UICulture «Es-es».
Intenta con eso.
jorge
05/06/2009
http://www.forosdelweb.com/f78/asp-net-calendar-extender-change-language-globalization-cambiar-idioma-ajax-postback-706809/
Pablo Alejandro Pérez Acosta
28/08/2009
Hola
La soluciòn de Recompilar el proyecto AjaxControlToolkiet.csproj y modificar el archivo ScritpResource.ascx en la seccion «Calendar_Today» funcióno perfecto.
Muchas Gracias.
Un Abrazo desde Colombia
Lenin
07/10/2009
Hola
Felicidades, muy útil el artículo, una consulta, como le puedo dar un formato al textbox para que si el usuario si no desea seleccionar la fecha del calendario entonces pueda digitarla.
Gracias-
k3n0
07/10/2009
Lenin:
Te recomiendo usar el PopupButtonID con una imagen de un calendario y a ésta imagen asignarle un ID.
ejemplo:
Con ésto te podrás hacer que el usuario al pinchar en el la imagen del calendario aparezca el control calendar. Además si el usuario quiere digitar la fecha puede hacerlo de forma manual.
No olvides de validarla con un
» isDate(cType(valor del textbox,Date))» (en VB)
o con una expresión regular dependiendo del formato de fecha que necesites.
GC Mty
08/10/2009
Excelente articulo de mucha utilidad me ahorre un buen de tiempo muy simple ¡¡¡
saludos desde Mty
Jose
04/11/2009
Muchas gracias!!!
fany
20/11/2009
Excelente sin palabras.
Ivan Hanakaze
05/02/2010
@fffffff: Gracias me salvaste la vida, llevo dias buscando eso…
Excelente artículo, gracias por la info.
guille
24/02/2010
Exelente me funciono super bien
felicidades
Julio C. B
30/06/2011
Gracias, pero sólo bastó activar el globalization y localization en mi caso.
Carlos Arias
02/08/2011
funciona de maravilla a mi ya no me puso Today no se si sea alguna actualizacion o algo
Cori
08/09/2011
sin palabras excelente
Alex Sanyago
14/09/2011
Exelente articulo pero como puedo hacer que por default cuando cargue la pagina me aparesca la fecha del dia actual y ya si quiero despues seleccionar del calendario otra fecha….????
k3n0
14/09/2011
En el evento page_load
colocas lo siguiente
vb
If Not.page.IsPostback()Then
me.txtCalendario.Text = date.now().toShortDateString();
End If
xxxxx xxx xx
26/09/2011
Muchas gracias parce..!!
yuli
12/10/2011
muy buen apartado y sobre todo muy claro … Q bueno q aun existan estos articulos
Dragon
29/03/2012
Por fin encontre la solucion para cambiar el «Today» a «Hoy». Al principio intente de todo. pero encontre la solucion en la pagina oficial de Ajax.
Soluion:
-En mi web.config tengo «»
-En mi ToolkitScriptManager tambien tengo «EnableScriptGlobalization=»true» EnableScriptLocalization=»true»»
-Anteriormente tenia en mi pagina «uiCulture=»auto» culture=»es-MX»», pero no traducia el «Today» asi que en el load de mi pagina cargue los atributos;
«Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(«es-ES»)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(«es-ES»)», con las librerias correspondientes;
«Imports System.Threading
Imports System.Globalization»
Nota:solo traduce con el valor de «es-ES», es por eso que lo cargue en el load.
k3n0
29/03/2012
Se va arriba para que todos lo tengamos en cuenta.